Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Перехват любого исключения

Читайте также:
  1. Exceptions (исключения)
  2. Автор оптимистически восклицает, что талант общения есть в каждом человеке, после чего рассказывает про четыре этапа освоения любого ремесла
  3. Автор пытается понять, как решать самую нервную проблему любого интервью
  4. В которой автор советует, как снимать маски, «украшающие» лица любого из нас
  5. В описание исключения добавляйте информацию о сбое
  6. Внутренний смысл любого болезненного симптома можно понять, связав его с функцией пораженной зоны.
  7. Всегда были исключения, — поведали старому учителю члены Совета, — но десять лет назад положение начало осложняться, и сейчас от месяца к месяцу дела идут всё хуже.
  8. ГЛАВА 1. ВЕЛИКИЙ БЛЕФ «ЗВЕЗДНЫХ ВОЙН», «ВОСЬМАЯ КАРТА», «ЛИВЕРМОРСКИЙ МОНСТР» И РУССКИЕ КОСМИЧЕСКИЕ ПЕРЕХВАТЧИКИ. «АЛМАЗЫ»: ОРБИТАЛЬНЫЕ, ПУШЕЧНЫЕ.
  9. Да, бесспорно, организм у всех разный, но это не говорит о том, что не может существовать такая система тренинга, которая бы подходила для всех без исключения занимающихся.
  10. Дети: принимаются с любого возраста – до 3-х лет без места – БЕСПЛАТНО!

Можно создать обработчик, ловящий любой тип исключения. Вы сделаете это, перехватив исключение базового типа Exception (есть другие типы базовых исключений, но Exception - это базовый тип, которому принадлежит фактически вся программная активность):

catch(Exception e) { System.err.println("Caught an exception");}

Это поймает любое исключение, так что, если вы используете его, вы будете помещать его в конце вашего списка обработчиков для предотвращения перехвата любого обработчика исключения, который мог управлять течением.

Так как класс Exception - это базовый класс для всех исключений, которые важны для программиста, вы не получите достаточно специфической информации об исключении, но вы можете вызвать метод, который пришел из его базового типа Throwable:

String getMessage()
String getLocalizedMessage ()
Получает подробное сообщение или сообщение, отрегулированное по его месту действия.

String toString()
Возвращает короткое описание Throwable, включая подробности сообщения, если они есть.

void printStackTrace()
void printStackTrace(PrintStream)
void printStackTrace ( PrintWriter )
Печатает Throwable и трассировку вызовов Throwable. Вызов стека показывает последовательность вызовов методов, которые подвели вас к точке, в которой было выброшено исключение. Первая версия печатает в поток стандартный поток ошибки, второй и третий печатают в выбранный вами поток (в Главе 11, вы поймете, почему есть два типа потоков).

Throwable fillInStackTrace ()
Запись информации в этот Throwable объекте о текущем состоянии кадра стека. Это полезно, когда приложение вновь выбрасывает ошибки или исключение (дальше об этом будет подробнее).

Кроме этого вы имеете некоторые другие метода, наследуемые от базового типа Throwable Object (базовый тип для всего). Один из них, который может быть удобен для исключений, это getClass(), который возвращает объектное представление класса этого объекта. Вы можете опросить у объекта этого Класса его имя с помощью getName() или toString(). Вы также можете делать более изощренные вещи с объектом Класса, которые не нужны в обработке ошибок. Объект Class будет изучен позже в этой книге.

Вот пример, показывающий использование основных методов Exception:

//: c10:ExceptionMethods.java// Демонстрация методов Exception. public class ExceptionMethods { public static void main(String[] args) { try { throw new Exception("Here's my Exception"); } catch(Exception e) { System.err.println("Caught Exception"); System.err.println("e.getMessage(): " + e.getMessage()); System.err.println("e.getLocalizedMessage(): " + e.getLocalizedMessage()); System.err.println("e.toString(): " + e); System.err.println("e.printStackTrace():"); e.printStackTrace(System.err); } }} ///:~

Вывод этой программы:

Caught Exceptione.getMessage(): Here's my Exceptione.getLocalizedMessage(): Here's my Exceptione.toString(): java.lang.Exception: Here's my Exceptione.printStackTrace():java.lang.Exception: Here's my Exception at ExceptionMethods.main(ExceptionMethods.java:7)java.lang.Exception: Here's my Exception at ExceptionMethods.main(ExceptionMethods.java:7)

Вы можете заметить, что методы обеспечивают больше информации — каждый из них дополняет предыдущий.




Дата добавления: 2015-09-11; просмотров: 18 | Поможем написать вашу работу | Нарушение авторских прав

Функциональность Map | Хеширование и хеш-коды | Фактор производительности HashMap | Хранение ссылок | Выбор реализации | Неподдерживаемые операции | Vector и Enumeration | Hashtable | Упражнения | Обработка ошибок с помощью исключений |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав