2010-12-11 77 views
2

我想知道怎樣的錯誤可以在java中被捕獲,但允許程序繼續運行。Java是否支持異常後恢復程序執行?

這裏是我的例子:

public class test1 { 
    public static void main(String[] args) { 
     String str = new String("abcdefghij"); 
     try { 
      System.out.println(str.charAt(0)); 
      System.out.println(str.charAt(9)); 
      System.out.println(str.charAt(10)); 
      System.out.println("is it still running"); 
     } catch (Exception e) { 
      System.out.println("the index is out of bounds"); 
     } 
    } 
} 

打印以下內容:

a 
j 
the index is out of bounds 

但之後引發錯誤我想代碼繼續運行,因此,這是印刷:

a 
j 
the index is out of bounds 
is it still running 

在此先感謝

回答

7

Java不支持「恢復」或異常後「重啓」。

你可以在try/catch(在上面的例子中總共3個,每個訪問一個)包裝特定行「跳過」,或者更好的是編寫不會拋出異常的代碼 - 異常真的應該成爲「特殊」的IMOHO。您也可以移動try/catch代碼放到一個方法來「包裝」的接入(例如,調用該方法3次),但行爲是相同的。

+0

這是我希望避免,很好哦,感謝有關Java :) – java 2010-12-11 04:52:30

+0

@java針對特定問題的信息種類-的,它(另)一個問題可能是有益的。另外,對發現SO和大房間的整體噸知識的不同(有時更好)接近給定的問題,一組特定的約束條件(例如,Java)內。 – 2010-12-11 07:02:52

2
for(int i =0; i < Short.MAX_VALUE; i++){ 
try{ 
    System.out.println(str.charAt(i)); 
}catch(Exception ex){} 
} 

如果您希望始終執行,您還可以使用finally bolck。

+0

哈哈。 +1的好泛化。 – 2010-12-11 04:02:20

+0

但我不想永遠打印值,除了這將是更好地使I java 2010-12-11 04:51:16