Аномальное явление программ Java, работающих на беге, называется ошибками бега. Согласно их природе, его можно разделить на две категории: ошибка (ошибка) и исключение (исключение); У них есть общий родительский класс (также родительский класс высшего уровня всех исключений): бросается.
Структура класса исключений
Ошибка
Ошибка генерируется JVM и заброшена без обработки; Такие ошибки обычно не связаны с кодом и выполненными операциями, и являются относительно серьезными проблемами в виртуальной машине и не могут быть решены самой программой (общие ошибки включают мертвые петли, утечки памяти и т. Д.).
Общей ошибкой является ошибка виртуальной машины Java (VirtualMachineError). Когда JVM больше не имеет ресурсов памяти, необходимых для продолжения операции, появится OutofmemoryError. Когда эти исключения происходят, виртуальная машина Java (JVM) обычно выбирает прекращение потоков.
Исключение
Исключение используется в качестве объекта и отбрасывается или обрабатывается программами Java; Обычно причины исключений: код или код вызова неверны, ресурсы операционной системы недоступны, а библиотека общего языка в библиотеке сталкивается с несчастным случаем;
Исключения делятся на исключения во время выполнения, сгенерированные виртуальными машинами (Runtimeexception, такие как нулевые указатели, массив из границ) и исключения без прохождения, вызванные авариями программы (например, ioException);
Исключение времени выполнения: программа может выбрать для захвата и обработки или бросить ее непосредственно без обработки; Общие исключения времени выполнения включают переполнение алгоритма (превышение численного диапазона экспрессии), делитель - это ноль, переполнение памяти, нулевой указатель, неверные параметры и т. Д. Такими исключениями являются ошибки программирования в самой программе. Вы можете настроить направление выполнения кода исключения, чтобы сохранить программу, пока она не закончится нормально;
Неудача исключения: неожиданные исключения типа Runtimeexception называются исключениями без прохождения. С точки зрения синтаксиса программы, это исключения, которые должны быть обработаны. Если они не обработаны, программа не может быть составлена и передана; Общие исключения из-за невыполнения включают ioException, например: файлы ресурсов не могут быть найдены и т. Д., Что означает, что программа не может успешно выполняться при столкновении с неожиданной ситуацией.
Примечание. Разница между исключениями и ошибками-исключения могут быть обработаны самой программой, но ошибки не могут быть обработаны.
Проверенные исключения и не проверенные исключения
Исключения Java (ошибки и реагирование) можно разделить на две другие категории в зависимости от того, может ли программа быть составлена и передана: проверенные исключения и неконтролируемые исключения.
Может проверить исключения
Исключение может быть проверено: соответствует исключениям, не связанным с прохождением, компилятор может проверить ожидаемые ошибки при составлении программы. Это исключение должно быть обработано. Существует два способа справиться с этим: оператор Try-Catch выявляет исключение или пункт о бросках объявляет, что бросает исключение, а тип исключения объявляется вне заголовка метода (используя исключение Throws), и вызывающий вызов может обратиться к полученному исключению.
Говоря об этих двух способах обработки, нам нужно поговорить о 5 ключевых словах обработки исключений Java: попробуйте, поймайте, наконец, бросает, бросает
1. Используйте оператор Try-Catch для захвата обработки (заголовок метода не нужно объявлять)
Три заявления блоки попытки, поймать и, наконец, не могут появиться в одиночку. Три могут быть объединены в Try-Catch/Try-Catch-Finally/Try-Finally.
Там может быть несколько блоков улова, и в настоящее время один из кодов блока подъема может быть сопоставлен только сверху вниз;
Наконец, большая часть одной переменной недоступна друг другу в трех блоках операторов.
В этом разделе комбинация try-catch используется для обработки проверенному исключению, бросая исключение вверх, пример:
public xmlreaderhdu (string xmlfile) {super (); this.xmlfile = xmlfile; this.filename = staticconfig.umlpathprefixhdu; try {saxreader reader = new saxreader (); document dom = reader.read (xmlfile); root = dom.getrootelement ();} catch (Exception e1) {handle1…} catch (исключение e2) {handle1…}}}}}}}}}}}}}}}}}}}}2. Используйте пункт о бросках, чтобы объявить бросок (объявить тип исключения в голову вне тела метода: используйте броски, чтобы бросить исключение)
Во -первых, используйте брось внутри тела метода, чтобы бросить исключение;
Затем метод объявляется вне головы и бросает исключение, брошенное внутрь, используя броски;
Пример 1: Try-Catch бросает исключение
public xmlreaderhdu (string xmlfile) бросает исключение {super (); this.xmlfile = xmlfile; this.filename = staticconfig.umlpathprefixhdu; try {saxreader reader = new saxreader (); document dom = reader.read (xmlfile); root = dom.getrootelement ();} catch (Exception e1) {thress новое исключение (e1);}};Пример 2: бросает индивидуальное исключение
private List<UseCase> readUCInformation() throws Exception {if(e1.hasContent()) {if(e1.element("name").getText().equals("preCondition")){uc.setPreCondition(e1.elementText("content"));} else{throw new Exception("UseCase constraint obtain exception, possible cause: constraint type or constraint name ошибка");}}}Невозможно проверить исключения
Неконтролируемые исключения: включает в себя ошибку ошибки и исключения выполнения Runtimeexception
Исключения во время выполнения могут быть переданы во время компиляции программы. Он не может быть обнаружен с помощью статического синтаксиса, который функции могут бросить исключения. Только когда обнаруживается исключение (то есть в зависимости от состояния времени выполнения, оно определяется состоянием времени выполнения);
Вы можете захватить обработку или выброшенную дисплей (MustbeChageDeclearedTobethrown). Эти исключения обычно вызваны ошибками логики программы, и программы должны как можно больше избегать таких исключений с логической точки зрения.
Суммировать
Выше приведено в анализе базовых знаний об исключениях Java в этой статье, я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!