Java Throw: Throw
Программа может использовать заявление о броске, чтобы бросить четкие исключения. Обычная форма заявления броска заключается в следующем:
бросить throwableInstance;
Здесь DepableInstance должен быть объектом брошенного типа класса или типа подкласса. Простые типы, такие как int или char, и невозможные классы, такие как строка или объект, не могут использоваться в качестве исключений. Существует два способа получить бросаемые объекты: используйте параметры в предложении Catch или создайте их с новым оператором.
Программное выполнение останавливается сразу после оператора Thr; Самый плотный блок Try используется для проверки, содержит ли он оператор CALT, соответствующий типу исключения. Если найден соответствующий блок, элемент управления превращается в оператор; Если не найден соответствующий блок улова, обработчик исключений по умолчанию прерывает выполнение программы и печатает трассу стека.
Ниже приведен пример программы, которая создает и бросает исключения.
// демонстрировать throw.class throwdemo {static void demoproc () {try {бросить новое nullpointerexception ("demo"); / / reethrow исключение}} public void main (string args []) {try {demoproc (); У программы есть две возможности для обработки одной и той же ошибки. Сначала main () устанавливает отношения исключения, а затем вызывает demoproc (). Метод DemoProc () затем устанавливает еще одно отношения обработки исключений и немедленно бросает новый экземпляр NullPointerException, который фиксируется на следующей строке. Исключение затем брошено снова. Вот результат вывода:
Занят внутри Demoproc.recauct: java.lang.nullpointerexception: демо
Программа также объясняет, как создать стандартные объекты исключения в Java, уделяя особое внимание следующей строке:
бросить новое NullPointerException («Демо»);
Здесь новый используется для построения экземпляра NullPointerException. Все исключения для встроенной среды Java имеют два конструктора: один не имеет параметров, а один имеет струнный параметр. Когда используется вторая форма, параметр указывает строку, описывающую исключение. Если объект используется в качестве параметра для print () или println (), отображается строка. Это также может быть достигнуто путем вызова getMessage (), который определяется броском.
Java выбрасывает пункт <br /> Если метод может вызвать исключение, но не обрабатывает его, он должен указать это поведение, чтобы вызывающий вызывающий метод мог защитить себя без исключения. Для этого вы можете включить пункт о бросках в декларацию метода. В предложении о бросках перечислены все типы исключений, которые может бросить метод. Это необходимо для всех исключений типов, кроме ошибок или Runtimeexception и их подклассов. Все другие виды исключений, которые может добавить метод, должны быть объявлены в пункте бросков. Неспособность сделать это приведет к ошибке компиляции.
Вот общая форма декларации метода, содержащую пункт о бросках:
Тип метода имени (l-list) бросает исключение-list {// body of Method}Здесь List Exception-List-это список исключений, сегментированный для запятой, который может бросить метод.
Вот неверный пример. Этот пример пытается сделать исключение, которое он не может поймать. Поскольку в программе не указано пункт о бросках, чтобы объявить этот факт, программа не будет компилировать.
// Эта программа содержит ошибку и не будет компилировать. String args []) {throwone (); Чтобы составить программу, необходимо изменить два места. Во -первых, вам необходимо объявить Throwone (), чтобы поднять исключение незаконной. Во -вторых, main () должен определить оператор Try/Catch, чтобы поймать исключение. Правильные примеры следующие:
// теперь это правильно. ) {try {toploone (); Вот выходные результаты примера:
Внутренняя двойная java.lang.illegalaccessexception: демонстрация