бросить исключение
Существует три формы бросающих исключений, одна бросает, одна бросает, а другая - автоматическое бросок исключений в системе. Сходства и различия между ними ниже.
Система автоматически бросит исключения. нравиться:
Public static void main (string [] args) {int a = 5, b = 0;
Система автоматически бросит исключение Arithmeticexception:
Исключение в потоке "Main" java.lang.arithmeticexception: / by zeroat test.exceptiontest.main (ExceptionTest.java:62)
Нравиться
Public Static void Main (String [] args) {String S = "ABC";
Система автоматически бросит исключение NumberFormateXception:
Исключение в потоке "Main" java.lang.numberformatexception: для входной строки: "abc" на sun.misc.floatingdecimal.readjavaformatstring (floationdecimal.java: 1224) на java.lang.double.parsedouble (Double.java:510) у test.exceptiontest.main (ExceptionTest.java:62)
бросать
Throw - это заявление, бросающее исключение.
Синтаксис: Throw (объект исключения);
нравиться:
бросить E;
Обычно используется, когда у программы есть определенная логика, а программист активно бросает исключение определенного типа. нравиться:
public static void main (string [] args) {string s = "abc"; /function ();
Будет брошено исключение:
Исключение в потоке "Main" java.lang.numberformatexceptionat test.exceptiontest.main (ExceptionTest.java:67)
броски
Выбросы - это заявление о том, что метод может сделать исключение. (При провозглашении метода это означает, что метод может сделать исключение)
Синтаксис: [(модификатор)] (тип возврата значения) (имя метода) ([список параметров]) [throws (class Exception)] {......}
нравиться:
public void function () бросает исключение {......}
Когда метод может бросить исключение, он используется для бросков, чтобы объявить исключение, которое можно бросить, а затем передать его программе метода, которая называет его. нравиться:
public static void function () The NumberFormateXception {String S = "ABC"; Catch (numberFormateXception e) {System.err.println («Не тип данных не может быть преобразован.»);
Результаты обработки следующие:
Типы не-дат не могут быть преобразованы.
Сравнение между бросками и бросками
1. Броски появляются в заголовке функции метода;
2. Броски указывают на возможность исключения, и эти исключения не обязательно произойдут;
3. Оба являются способами негативно справиться со исключениями (негативные здесь не означает, что этот метод не очень хорош). выполнено функцией.
Хорошие привычки программирования:
1. При написании программы попробуйте {...} Catch {...} обычно используется для улавливания и обработки ее для частей, которые могут иметь исключения;
2. После того, как вы поймете исключение с помощью Try {...} Catch {...}, вы должны обработать его в Catch {...}, даже если это самый простой оператор вывода, или ввод E в стеке. );
3. Если вы ловите исключения в вводе и выводе IO, вы должны наконец добавить {...}, чтобы закрыть поток ввода и вывода после Try {...} Catch {...};
4. Если определенное исключение добавлено в корпус функции, лучше всего добавить броски к имени функции, а затем передайте его верхней функции, которая называет ее для обработки.
Например:
Выбросы E1, E2, E3 просто сообщают программе, что этот метод может бросить эти исключения, и вызывающему методу, возможно, придется справиться с этими исключениями, и эти исключения E1, E2, E3 могут быть сгенерированы функциональным организмом.
Throw дает понять, что это исключение должно быть брошено в этом месте.
нравиться:
void doa (int a) бросает ioexception, {try {......} catch (exection1 e) {throw e; a! = b) бросить новое исключение3 ("Custom Exception");}
В кодовом блоке может быть 3 исключения (Exception1, Exception2, Exception3).
Если генерируется исключение1, оно будет захвачено и брошено снова, и вызывающий абонент метода справится с ним.
Если генерируется исключение2, метод обрабатывает его сам (т.е. System.out.println ("error!");). Следовательно, этот метод больше не будет выпускать исключения Exception2 наружу, и вам не нужно писать Exception2 в void doa (), бросает Exception1, Exception3.
Исключение3 - это ошибка в определенном сегменте метода.
Оператор THRE используется в организме метода, чтобы указать, что исключение брошено и обрабатывается операторами в организме метода.
Оператор бросков используется после объявления метода, указывая, что исключение бросается и обрабатывается вызывающим абонент метода.
Броски в основном заявляют, что этот метод бросит этот тип исключения, чтобы его вызывал вызывание знал, чтобы поймать это исключение.
Throw - это конкретное действие, чтобы бросить исключение наружу, поэтому он должен бросить экземпляр исключения.
Выбросы означает, что у вас есть такая возможность, тенденция.
Если вы бросаете, то есть вы превратили эту тенденцию в реальность.
Если это системное исключение, вы можете ничего сделать, и вы можете бросить исключение из метода, потому что системное исключение может быть автоматически поймано системой. Функция уровня для решения проблемы на самом деле эффективна, она такая же. Тем не менее, я проверил много информации.
Если это исключение, определяемое на вас, вы должны использовать броски для бросания исключений, которые могут быть брошены этим методом, в противном случае компиляция сообщит об ошибке.