2015-01-18 6 views
0

Что делать в блоке catch, если мы ничего не можем сделать для восстановления работы программы? Скажем, это простая программа, поэтому Logging тоже не подходит. Например:Правильная простая обработка исключений

public class Test { 
public static void main(String[] args) { 
    try { 
     Scanner in = new Scanner(Paths.get("SomeFile.txt")); 
     //... 
    } catch (IOException exc){ 
     //System.out.println("Error"); — erroneous, right? 
    } 
    } 
} 
+0

Что бы вы хотели видеть, когда возникает такое исключение (а не ошибка)? Вы можете распечатать трассировку стека, например, распечатать сообщение об ошибке (для этого нужно использовать 'System.err') или что-нибудь еще, что поможет вам определить неправильное поведение. Обычно я предпочитаю просто' System.err.println (exc) ' в блоке catch (Исключения имеют метод 'toString()')! – vefthym

+0

Если вы не можете восстановить, просто не поймайте вообще. – rightfold

+0

Что вы подразумеваете под простой программой? Вы имеете в виду программу, написанную для понимания Java API? – CKing

ответ

0

Если это простая программа, либо ничего не делать (не поймать исключение, добавьте throws статьи в свой основной метод) или напечатать какое-то сообщение об ошибке в блоке уловов (предпочтительно в систему. ERR). Последний вариант имеет смысл только в том случае, если после блока catch больше нет кода (поскольку вы не хотите выполнять какой-либо код после того, как исключение поймано).

+0

В простой программе я имею в виду программу, которую кто-то мог увидеть и, например, сказать что-то о неправильном/хорошем программировании стиля. – Dmytro

Смежные вопросы