Ошибки - проклятие пользователей и программистов. Разработчики, очевидно, не хотят, чтобы их программы падали на каждом шагу, и пользователи теперь так привыкли к ошибкам в программы, которые они неохотно принимают, чтобы заплатить цену за программное обеспечение, которое почти наверняка будет иметь по крайней мере одну ошибку в Это. Джава разработан, чтобы дать программисту спортивный шанс в разработке безошибочного приложения. Есть исключения, о которых программист узнает, есть вероятность, когда приложение взаимодействует с ресурсом или пользователем, и эти исключения могут быть обработаны. К сожалению, есть исключения, которые программист не может контролировать или просто игнорирует. Короче говоря, все исключения не созданы равными, и поэтому программист может подумать о нескольких типах.
Исключением является событие, которое приводит к невозможности выполнения программы в запланированном режиме. Существует три типа исключений - проверенное исключение, ошибка и исключение времени выполнения.
Проверенное исключение
Проверенные исключения - это исключения, с которыми Java-приложение должно справиться. Например, если приложение считывает данные из файла, оно должно иметь возможность обрабатывать FileNotFoundException
. В конце концов, нет никакой гарантии, что ожидаемый файл будет там, где он должен быть. В файловой системе может произойти что угодно, о чем приложение не может знать.
Чтобы сделать этот пример еще на шаг дальше. Допустим, мы используем FileReader
класс для чтения файла символов. Если вы посмотрите на Определение конструктора FileReader в Java API вы увидите, что это подпись метода:
public FileReader (String fileName) выдает FileNotFoundException.
Как вы можете видеть, конструктор определенно утверждает, что FileReader
конструктор может бросить FileNotFoundException
. Это имеет смысл, так как весьма вероятно, что имя файла
Строка будет время от времени ошибаться. Посмотрите на следующий код:
public static void main (String [] args) { FileReader fileInput = null; // Открыть входной файл. fileInput = new FileReader ("Untitled.txt"); }
Синтаксически операторы верны, но этот код никогда не скомпилируется. Компилятор знает FileReader
конструктор может бросить FileNotFoundException
и это до вызывающего кода, чтобы обработать это исключение. Есть два варианта: во-первых, мы можем передать исключение из нашего метода, указав бросает
пункт тоже:
public static void main (String [] args) throws FileNotFoundException { FileReader fileInput = null; // Открыть входной файл. fileInput = new FileReader ("Untitled.txt"); }
Или мы можем справиться с исключением:
public static void main (String [] args) { FileReader fileInput = null; пытаться. { // Открыть входной файл. fileInput = new FileReader ("Untitled.txt"); } catch (FileNotFoundException ex) { // сказать пользователю, что нужно пойти и найти файл. } }
Хорошо написанные Java-приложения должны справляться с проверенными исключениями.
ошибки
Второе исключение известно как ошибка. Когда возникает исключение, JVM создаст объект исключения. Все эти объекты происходят из Throwable
учебный класс. Throwable
класс имеет два основных подкласса ошибка
и исключение
. ошибка
Класс обозначает исключение, с которым приложение вряд ли сможет справиться.
Эти исключения считаются редкими. Например, JVM может исчерпать ресурсы из-за того, что оборудование не может справиться со всеми процессами, с которыми ему приходится иметь дело. Приложение может перехватить сообщение об ошибке, чтобы уведомить пользователя, но обычно приложение должно закрываться, пока не будет решена основная проблема.
Исключения во время выполнения
исключение во время выполнения происходит просто потому, что программист допустил ошибку. Вы написали код, все выглядит хорошо для компилятора, и когда вы запускаете код, он падает, потому что попытался получить доступ к элементу массива, который не существует или логическая ошибка привела к тому, что метод был вызван с нулевым значением значение. Или любое количество ошибок, которые может сделать программист. Но это нормально, мы выявляем эти исключения с помощью исчерпывающего тестирования, верно?
Ошибки и исключения времени выполнения попадают в категорию непроверенных исключений.