Оглавление:
- Ошибки броска в исключительных условиях
- Передача ошибок вызывающему абоненту
- Требуемая обработка ошибок
Видео: Java для начинающих #8 Error Exception 2024
Важно, чтобы ваш код Java прилагал все усилия, чтобы исправить проблему. Однако есть моменты, когда ваш код просто не располагает достаточной информацией, ресурсами, правами или некоторым другим требованием для решения проблемы.
Когда это произойдет, ваш код выдает ошибку с помощью объекта исключения. Термин исключение является подходящим, поскольку он должен быть исключением из правила, а не первым действием, выполняемым приложением. Тем не менее, приложения сталкиваются с ошибками, требующими исключительных мер, а в следующих разделах описывается, как справляться с подобными ситуациями.
Ошибки броска в исключительных условиях
Для практики вы можете создать приложение, которое может генерировать несколько видов ошибок. Обычно вы не будете бросать ошибку, если значение находится в неправильном диапазоне - вместо этого вы отображаете сообщение непосредственно пользователю. Тем не менее, вы можете создать пример, демонстрирующий, как выкинуть и поймать ошибку из метода.
Передача ошибок вызывающему абоненту
Многие примеры кода, с которых вы начинаете, только начинают доходить до того момента, когда вы вызываете методы из main (). Метод main () всегда является верхним уровнем вашего приложения. Как вы называете методы, методы, которые вы называете, образуют дополнительные уровни.
Например, метод, вызванный из main (), будет на втором уровне вашего приложения. Если этот метод должен был вызвать другой метод, этот метод будет на третьем уровне и т. Д. Большинство приложений состоят из множества уровней вызовов.
Фактически, когда вы видите исключение на экране, он фактически отображает список методов, которые вызывают текущий метод в формате, называемом стек вызовов .
Стек вызовов - это список методов и порядок их вызова другими методами. Знание стека вызовов может помочь вам найти источник потенциальной ошибки, если это не произойдет на текущем уровне приложения.
Обработка ошибок является важной частью хорошей практики программирования. Если вам нужны надежные приложения, которые не постоянно падают, вам необходимо обеспечить хорошую обработку ошибок. Тем не менее, попытка обработки ошибки, когда у вас недостаточно информации для обработки этой ошибки, также является проблемой.
Когда ваш код пытается исправить ошибку на слишком низком уровне, он скрывает ошибку с уровня, который мог бы исправить. Да, вы хотите исправить ошибку на самом низком возможном уровне, но не за счет предоставления ремонта, который мог бы фактически скрыть что-то более серьезное.
Когда вы обнаружите, что для определенного уровня приложения не требуются требуемые ресурсы, информация, привилегии, пользовательский доступ или какой-либо другой элемент, необходимый для обработки ошибки, вы выдаете оператор throw с соответствующим объектом исключения.Предыдущий уровень приложения получит исключение и определит, может ли он справиться с этим.
Однако, если метод main () получает исключение, то вы должны определить, что делать с ошибкой, или приложение будет аварийно завершено. Обычно считается, что плохая практика программирования просто позволяет краху приложения - вам нужно придумать какой-то способ справиться с ошибками, с которыми сталкивается приложение.
Требуемая обработка ошибок
Java предоставляет два вида исключений: отмеченные (те, которые контролируются JRE) и не отмеченные (те, которые не контролируются JRE). У вас есть возможность обработки исключенного исключения. Однако Java заставляет вас обрабатывать проверенное исключение. Ваш код даже не будет скомпилирован, если вы попытаетесь использовать метод, у которого есть связанное с ним исключение.
Исключенное исключение - это то, что JRE сообщает определение класса для контроля. JRE заставляет пользователя класса предоставлять обработку для исключения, чтобы гарантировать надежную работу класса.
Все виды нечетных деталей связаны с проверенными и непроверенными исключениями. Легкий способ узнать, проверено ли исключение, - это знать родительский класс. Все исключения, которые подклассифицированы из классов Error или RuntimeException, не отмечены - проверяется каждое другое исключение.
Лучшая практика заключается в том, чтобы обрабатывать все исключения в вашем приложении, и вам не придется беспокоиться о том, проверено или не проверено исключение. Отличный разработчик всегда обрабатывает потенциальные ошибки - вот в чем суть.