Java 示例 - 空堆栈异常

  • 问题描述

    如何处理空栈异常?
  • 解决方案

    此示例展示了如何使用 Stack 类的 s.empty()、s.pop() 方法和 Date 类的 System.currentTimeMillis() 方法处理空堆栈异常。
    
    import java.util.Date;
    import java.util.EmptyStackException;
    import java.util.Stack;
    public class ExceptionalTest {
       public static void main(String[] args) {
          int count = 1000000;
          Stack s = new Stack();
          System.out.println("Testing for empty stack");
          long s1 = System.currentTimeMillis();
          for (int i = 0; i <= count; i++)
          
          if (!s.empty())s.pop();
          long s2 = System.currentTimeMillis();
          System.out.println((s2 - s1) + " milliseconds");
          System.out.println("Catching EmptyStackException");
          s1 = System.currentTimeMillis();
          
          for (int i = 0; i <= count; i++) {
             try {
                s.pop();
             } catch (EmptyStackException e) {
             }
          }
          s2 = System.currentTimeMillis();
          System.out.println((s2 - s1) + " milliseconds");
       }
    }
    
  • 结果

    上面的代码示例将产生以下结果。
    
    Testing for empty stack
    16 milliseconds
    Catching EmptyStackException
    3234 milliseconds