如何處理 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
java_exceptions.htm
廣告
© . All rights reserved.