Поддерживает ли Java возобновление выполнения программы после исключения? - PullRequest
2 голосов
/ 11 декабря 2010

Я хотел бы знать, как можно обнаружить ошибку в 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 ]

7 голосов
/ 11 декабря 2010

Java не поддерживает «возобновление» или «перезапуск» после исключения.

Вы можете заключить определенную строку «пропустить» в try/catch (всего будет 3 в приведенном выше примере, одиндля каждого доступа) или, возможно, лучше, написать код, который не будет генерировать исключение - исключения действительно должны быть «исключительными» IMOHO.Вы также можете переместить код try/catch в метод, чтобы «обернуть» доступ (например, вызвать метод 3x), но действия такие же.

2 голосов
/ 11 декабря 2010
for(int i =0; i < Short.MAX_VALUE; i++){
 try{
    System.out.println(str.charAt(i));
 }catch(Exception ex){}
}

Также вы можете использовать, наконец, bolck, если хотите выполнять всегда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...