Java是否支持在异常后恢复程序执行?

时间:2010-12-11 03:56:14

标签: java exception-handling

我想知道如何在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

提前致谢

2 个答案:

答案 0 :(得分:7)

Java在异常后不支持“恢复”或“重新启动”。

你可以在try/catch中包含特定行“跳过”(在上面的例子中总共为3,每次访问一个),或者更好的是,编写不会抛出异常的代码 - 异常真的应该是“特殊的”IMOHO。您还可以将try/catch代码移动到一个“包装”访问的方法中(例如,调用方法3x),但操作是相同的。

答案 1 :(得分:2)

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

如果您希望始终执行,也可以使用finally块。