Вопрос новичка об исключении в Java - PullRequest
1 голос
/ 18 ноября 2009

когда возникает исключение, которое метод не может обработать - программа завершается и показывает номер ошибки? откуда берется номер ошибки и информация об ошибке? Если программист во время кодирования имеет представление о том, какое исключение может произойти. если так, то почему он не гарантирует, что исключение не произойдет.

Ответы [ 4 ]

2 голосов
/ 18 ноября 2009

Если вы используете API Java, исключения, которые выдает каждый метод, документируются.

Когда программа завершает работу, она показывает трассировку стека вызовов методов, вызвавших эту конкретную проблему.

Проверьте урок об исключениях из учебника Java . Там вы можете узнать гораздо больше, чем читая мой ответ:)

1 голос
/ 18 ноября 2009

В Java существует 2 основных типа исключений:

- checked
- unchecked

непроверенные исключения далее разбиваются на RuntimeException и Error.

RuntimeExceptions - это ошибки программиста (ArrayIndexOutOfBoundsException), а ошибки - это проблемы в ВМ (OutOfMemoryError).

Вы не должны перехватывать RuntimeExceptions - вы должны исправить свой код, чтобы он не генерировал исключение.

Вы не должны перехватывать ошибки, поскольку виртуальная машина, вероятно, находится в состоянии, когда вы не можете ничего сделать для их восстановления.

Если ваш основной сервер не улавливает непроверенное исключение, он вылетит.

0 голосов
/ 18 ноября 2009

должен программист при кодировании есть представление, что за исключение может произойти

Да, но никто не идеален.

почему он не гарантирует это исключение не встречается

В исключительных случаях вы ХОТИТЕ исключение. Вы не хотите игнорировать исключение. Например, предположим, что ваша программа создает файл для сохранения пользовательских настроек. Если по какой-то причине создание файла не удается (что ваша программа не контролирует, это работа операционной системы), вы не хотите продолжать, как ничего не произошло. Вы хотите, чтобы было исключение, чтобы тот, кто или какая-либо функция, вызвавшая эту функцию, знал об этой проблеме и мог что-то сделать, например сообщите пользователю.

0 голосов
/ 18 ноября 2009

Исключения Java всплывают до точки, где кто-то их ловит, или до точки выхода из программы. В реальном мире, когда используется много фреймворков, исключения никогда не всплывают наверх. Они пойманы и зарегистрированы (напечатано на консоли). Перехват исключений осуществляется блоком try { } catch(..) { }.

Существует два типа исключений - проверенные и непроверенные. Проверенные исключения должны быть объявлены в сигнатуре метода (в отличие от непроверенной)

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