В чем разница между броском и броском? бросает в Java

Опубликовано: 2013-07-23

В чем разница между броском и броском? бросает в Java

Один объявляет, а другой делает

Есть пять ключевых слов, связанных с обработкой исключений в Java, например , try, catch, finally, throw и throws . Помимо разницы между final, finally и finalize , throws vs throws — один из часто задаваемых вопросов на собеседованиях по Java.

  • Ключевое слово throw используется для создания исключения из любого метода или статического блока в Java, в то время как ключевое слово throws , используемое в объявлении метода, обозначает, какое исключение может быть вызвано этим методом. Они не взаимозаменяемы.
  • Если какой-либо метод выдает проверенное исключение, как показано в приведенном ниже примере, то вызывающая сторона может либо обработать это исключение, перехватив его, либо может повторно выдать его, объявив другое предложение throws в объявлении метода.
  • Предложение Throw можно использовать в любой части кода, где, по вашему мнению, необходимо создать определенное исключение для вызывающего метода.

Понимание исключений Java:

Если метод выдает исключение, он должен быть либо окружен блоком try-catch для его перехвата, либо этот метод должен иметь в своей подписи предложение throws. Без предложения throws в подписи компилятор Java JVM не знает, что делать с исключением. Предложение throws сообщает компилятору, что это конкретное исключение будет обрабатываться вызывающим методом.

Ниже приведен очень простой пример, объясняющий поведение блока Throw, Throws, Try, Catch, finally в Java.

Результат:

Исключение нулевого указателя - Crunchify

Теперь просто замените строки 45 и 46 строкой ниже, чтобы увидеть результат ниже:

Новый результат:

Список всех руководств по Java, которые могут вас заинтересовать.

Бонусные советы по исключениям:

  • Нормальное выполнение программы немедленно разветвляется при возникновении исключения.
  • Проверенные исключения должны быть перехвачены или перенаправлены. Это можно сделать с помощью оператора try … catch или путем определения исключения в определении метода.
  • Исключение перехватывается первым блоком catch , связанный с которым класс исключения соответствует классу или суперклассу выданного исключения.
  • Если в цепочке исключений не найден соответствующий блок catch , поток, содержащий выброшенное исключение, завершается.
  • Блок finally после оператора try … catch выполняется независимо от того, перехвачено исключение или нет.
  • Возврат в блоке finally разрывает цепочку исключений для вызывающей стороны даже для неперехваченных исключений.