Может ли кто-нибудь четко указать разницу между броском и броском в обработке исключений Java на примере? Я пробовал гуглить, но не смог прийти к выводу. Пожалуйста, помогите
Разница между броском и броском в Java?
Ответы (2)
Предложение
throws
используется для объявления исключения, а ключевое словоthrow
используется для явного создания исключения.Если мы посмотрим на синтаксис, то за
throw
следует переменная экземпляра, а заthrows
следуют имена классов исключений.Ключевое слово
throw
используется внутри тела метода для вызова исключения, а предложениеthrows
используется в объявлении метода (сигнатуре).
Например
бросить
throw new Exception("You have some exception")
throw new IOException("Connection failed!!")
выбрасывает
public int myMethod() throws IOException, ArithmeticException, NullPointerException {}
Вы не можете объявить несколько исключений с помощью
throw
. Вы можете объявить несколько исключений, например. public void method() выдает IOException, SQLException.проверенные исключения не могут распространяться с помощью
throw
только потому, что он явно используется для создания определенного исключения. проверенное исключение может быть распространено с помощьюthrows
.
Распространение исключений. Исключение распространяется от метода к методу вверх по стеку вызовов, пока не будет перехвачено. Таким образом, если a() вызывает b(), которая вызывает c(), которая вызывает d(), и если d() выдает исключение, исключение будет распространяться от d к c, к b к a, если только один из этих методов не перехватит исключение. что такое распространение исключений?
throw
использовать для генерирования фактических Exception
и throws
объявить метод, который может генерировать Exception
.
public int findMax(int[] array) throws Exception{
if(array==null)
throw new NullPointerException(...);
...
}