Встроенный исключение подкласс
В стандартном пакете java.lang Java определяет несколько классов исключений. Некоторые из них были использованы в предыдущих примерах. Эти исключения, как правило, являются подклассами стандартного класса Runtimeexception. Поскольку java.lang фактически представлен всеми программами Java, большинство исключений, полученных из Runtimeexception, доступны автоматически. Кроме того, они не должны быть включены в список бросков любого метода. В Java это называется неконтролируемым исключением. Потому что компилятор не проверяет его, чтобы увидеть, обрабатывает ли метод или бросает эти исключения. Неконтролируемые исключения, определенные на java.lang, перечислены в таблице 1. В таблице 2 перечислены исключения, которые должны быть включены в список бросков, определяемые Java.lang, если эти методы могут генерировать одно из исключений, но не могут справиться с ним сами. Они называются проверенными исключениями. Java определяет несколько других типов исключений, связанных с различными классами библиотеки.
Таблица 1: Подкласс неконтролируемых исключений, определенный в java.lang в Java
Таблица 2: Проверьте исключение, определенное в java.lang
Создайте свой собственный подкласс исключения, используя Java
Несмотря на то, что встроенная обработка исключений Java наиболее распространенные ошибки, возможно, вы захотите создать свой собственный тип исключений для обработки особых случаев, которые вы применяете. Это очень просто: просто определите подкласс исключения (исключение, конечно, является подклассом броска). Ваши подклассы не должны ничего делать - их присутствие в системе типов позволяет использовать их в качестве исключений.
Сам класс исключений не определяет ни одного метода. Конечно, он наследует некоторые методы, предоставленные бросками. Следовательно, все исключения, включая те, которые вы создаете, могут получить определенный метод броска. Эти методы показаны в таблице 3. Вы также можете переопределить один или несколько из этих методов в классе исключений, который вы создаете.
Таблица 3 Методы, определяемые бросками
В следующем примере объявляет новый подкласс исключения, который затем используется в качестве сигнала для ошибки в методе. Он перегружает метод toString (), так что описание исключения может быть отображено с помощью println ().
// Эта программа создает пользовательский тип исключения. } class ExceptionDemo {static void Compute (int a) Throws myException {System.out.println ("Compute (" + a + ")"); .println («Нормальный выход»); e);
Этот пример определяет подкласс исключения MyException. Этот подкласс очень прост: он содержит только конструктор и перегруженный метод toString (), который отображает выбросы. Класс ExceptionDemo определяет метод Compute (). Этот метод бросает объект MyException. Это исключение повышается, когда целочисленный параметр compute () больше 10.
Метод Main () устанавливает обработчик исключений для MyException, а затем вызывает Compute () с законным значением и незаконным значением для отображения различных путей выполнения через код. Вот результаты:
Вызов Compute (1) Нормальный вычисленный вычислитель (20) поймал MyException [20]