Проверено или исключено исключение

Я изучил это: однако, несмотря на неконтролируемое исключение, компилятор не заставляет клиентских программистов либо улавливать исключение, либо объявлять его в предложении throws. На самом деле, клиентские программисты могут даже не знать, что исключение можно было бы выбросить. например, StringIndexOutOfBoundsException, вызванный методом String charAt().

что это значит?

в соответствии с этим кодом нет необходимости помещать блок try catch в код, но я видел, что силы компилятора помещают код в блок catch try.

Я очень смущен, что они точно?

Ответ 1

Непроверенные исключения - это те, которые расширяют класс RuntimeException. Компилятор никогда не заставит вас поймать такое исключение или заставить вас объявить его в методе, используя ключевое слово throws. Все остальные типы исключений (которые не распространяются на RuntimeException) проверяются и поэтому должны быть объявлены как брошенные и/или выхваченные.

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

Если вы считаете, что ничего полезного не может сделать вызов об исключении (особенно когда он представляет ошибку или неправильное использование вашего API), тогда исключение должно быть отменено. Кроме того, API со слишком большим количеством проверенных исключений может раздражать программу (например, попробовать использовать java reflection API =)

Ответ 2

Каков ваш вопрос? Компиляторы не должны (и не будут) принуждать вас к попыткам/исключению исключенных исключений, которые будут противоречить именно тем, чем они являются.

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

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

Ответ 3

Это потому, что

  • Неконтролируемые исключения не являются результатом ошибки программиста. Вместо этого они являются серьезными последствиями, из-за которых мы (программист) не ожидаем многого с ним.
  • В случае Проверенного исключения это исключение создается из-за ошибки программиста и часто может быть разрешено самим программистом.

Проверьте следующие ссылки:

Почему исключения RunTime не отмечены?
Проверено или отменено исключение?

Ответ 4

  • Проверенные Исключения полезны для обработки событий, которые происходят в нормальной работе программы. Примером может служить IOException, который генерируется, когда файл не может быть открыт. Эти исключения происходят, даже если с программой все в порядке. Поэтому необходимо сообщить программе, как обрабатывать исключение.
  • Непроверенные исключения полезны для выявления дефектов в коде. Например, NullPointerException генерируется, когда значение считывается в объекте null. Таким образом, непроверенное исключение представляет проблему, которая требует ручного исправления программистом. Разумно, чтобы программа аварийно завершилась, чтобы избежать ошибочного поведения, поэтому блокировка try-catch не требуется (но может быть желательна для смягчения последствий, таких как отображение ошибки для пользователя).

Ответ 5

** Проверенные исключения

Исключения, которые должны быть проверены или обработаны или должны быть приняты во время написания кода, называются проверенными исключениями. Например: 1. у нас есть FileNotFoundException ->, который будет происходить, когда мы пишем некоторый код, связанный с классами файлов. Будет определенно возможность отсутствия файла. В таком случае, чтобы справиться с ними, мы вынуждены обязательно обработать эти исключения. 2. еще один пример - ParseException, который будет иметь место, когда мы имеем дело с функциями даты.

Непроверенные исключения

Это исключения, которые необязательны для обработки во время кодирования. От нас зависит, справимся ли мы с ними или нет. В случае, если мы не сможем их обработать, существует вероятность получения ошибок во время выполнения исключения. Например: У нас есть нечто, называемое NullPointerException, ArithemeticException, NosSuchElementFoundException и так далее. Это как дополнительные вещи, с которыми нам даже не приходится обращаться. Более того, даже jvm или компилятор не будут рекомендовать нам обрабатывать их. **