Catching java lang runtimeexception

Java 8 исключения

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

Исключение (exception)— это событие, которое возникает во время выполнения программы и прерывает нормальный поток выполнения инструкций.

Когда возникает какая-нибудь ошибка внутри метода, метод создаёт специальный объект, называемый объектом-исключением или просто исключением (exception object), который передаётся системе выполнения. Этот объект содержит информацию об ошибке, включая тип ошибки и состояние программы, в котором произошла ошибка. Создание объекта-исключения и передача его системе выполнения называется броском исключения (throwing an exception).

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

Выбранный обработчик исключения ловит это исключение.

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

В Java все классы-исключения являются наследниками от класса java . lang . Throwable , который в свою очередь имеет подклассы java . lang . Error и java . lang . Exception . Класс java . lang . Exception имеет дочерний класс java . lang . RuntimeException .

java.lang.Throwable java.lang.Exception java.lang.Error java.lang.RuntimeException

Согласно соглашению все бросаемые исключения являются наследниками трёх классов: java . lang . Error , java . lang . Exception или java . lang . RuntimeException . Технически можно бросить исключение, которое не является наследником этих трёх классов, но является наследником java . lang . Throwable , но так делать не принято.

Виды исключений в Java 8

Из описанных выше трёх классов выходит три вида исключений в Java:

  • Наследники java . lang . Error . Эти исключения возникают при серьёзных ошибках, после которых невозможно нормальное продолжение выполнения программы. Это могут быть различные сбои аппаратуры и т. д. В обычных ситуациях ваш код не должен перехватывать и обрабатывать этот вид исключений.
  • Наследники java . lang . RuntimeException . Это непроверяемый тип исключений вроде выхода за границу массива или строки, попытка обращения к методу на переменной, которая содержит null , неправильное использование API и т. д. В большинстве своём программа не может ожидать подобные ошибки и не может восстановиться после них. Подобные исключения возникают из-за ошибок программиста. Приложения может их перехватывать, но в большинстве случаев имеет гораздо больше смысла исправить ошибку, приводящую к подобным исключениям.
  • Наследники java . lang . Exception , которые НЕ являются наследниками java . lang . RuntimeException . Подобный тип исключений называется проверяемыми исключениями (checked exceptions). Это такой тип исключений, который может ожидать хорошо написанная программа, и из которых она может восстановить свой обычный ход выполнения. Это может быть попытка открыть файл, к которому нет доступа, или которого не существует, проблемы с доступом по сети и т. д. Все исключения являются проверяемыми, кроме наследников java . lang . Error и java . lang . RuntimeException . Любой метод, который может бросить проверяемое исключение, должен указать это исключение в клаузе throws . Для любого кода, который может бросить проверяемое исключение, это исключение должно быть указано в throws метода, либо должно быть перехвачено с помощью инструкции try — catch .

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

Рассмотрите следующий код:

Источник

Java 8 исключения

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

Исключение (exception)— это событие, которое возникает во время выполнения программы и прерывает нормальный поток выполнения инструкций.

Когда возникает какая-нибудь ошибка внутри метода, метод создаёт специальный объект, называемый объектом-исключением или просто исключением (exception object), который передаётся системе выполнения. Этот объект содержит информацию об ошибке, включая тип ошибки и состояние программы, в котором произошла ошибка. Создание объекта-исключения и передача его системе выполнения называется броском исключения (throwing an exception).

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

Выбранный обработчик исключения ловит это исключение.

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

В Java все классы-исключения являются наследниками от класса java . lang . Throwable , который в свою очередь имеет подклассы java . lang . Error и java . lang . Exception . Класс java . lang . Exception имеет дочерний класс java . lang . RuntimeException .

java.lang.Throwable java.lang.Exception java.lang.Error java.lang.RuntimeException

Согласно соглашению все бросаемые исключения являются наследниками трёх классов: java . lang . Error , java . lang . Exception или java . lang . RuntimeException . Технически можно бросить исключение, которое не является наследником этих трёх классов, но является наследником java . lang . Throwable , но так делать не принято.

Виды исключений в Java 8

Из описанных выше трёх классов выходит три вида исключений в Java:

  • Наследники java . lang . Error . Эти исключения возникают при серьёзных ошибках, после которых невозможно нормальное продолжение выполнения программы. Это могут быть различные сбои аппаратуры и т. д. В обычных ситуациях ваш код не должен перехватывать и обрабатывать этот вид исключений.
  • Наследники java . lang . RuntimeException . Это непроверяемый тип исключений вроде выхода за границу массива или строки, попытка обращения к методу на переменной, которая содержит null , неправильное использование API и т. д. В большинстве своём программа не может ожидать подобные ошибки и не может восстановиться после них. Подобные исключения возникают из-за ошибок программиста. Приложения может их перехватывать, но в большинстве случаев имеет гораздо больше смысла исправить ошибку, приводящую к подобным исключениям.
  • Наследники java . lang . Exception , которые НЕ являются наследниками java . lang . RuntimeException . Подобный тип исключений называется проверяемыми исключениями (checked exceptions). Это такой тип исключений, который может ожидать хорошо написанная программа, и из которых она может восстановить свой обычный ход выполнения. Это может быть попытка открыть файл, к которому нет доступа, или которого не существует, проблемы с доступом по сети и т. д. Все исключения являются проверяемыми, кроме наследников java . lang . Error и java . lang . RuntimeException . Любой метод, который может бросить проверяемое исключение, должен указать это исключение в клаузе throws . Для любого кода, который может бросить проверяемое исключение, это исключение должно быть указано в throws метода, либо должно быть перехвачено с помощью инструкции try — catch .

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

Рассмотрите следующий код:

Источник

Читайте также:  Две формы страницы php
Оцените статью