Быстрый вопрос, мне немного сложно обернуть голову вокруг того, как работают исключения. Я понимаю, что вы можете вложить исключение в заявлении, еслиJava Custom Exception Criteria
т.е.int i = 0;
if (i == 0) {
throw new Exception("i cannot be 0");
}
Но я не понимаю, где в Try/поймать блок, где критерии исключения удовлетворяются. В моем классе мы должны создать наше собственное исключение, в этом случае код указано выглядит следующим образом:
public class NegativeValueException extends Exception{
public NegativeValueException() {
super("Numberic values must be nonnegative.");
}
}
Так, насколько я вижу, нет никаких критериев в коде выше, что показывает исключение должно быть брошено.
int i = 1;
try {
i = -1;
} catch (NegativeValueException e) { //Thrown exception because the value is negative.
//Where is the criteria that catches this exception?
}
'catch' _is_ критерии. Если «NegativeValueException» _thrown_, оно будет поймано. –
Но где определяется улов? В какой момент кода он проходит и говорит «хорошо, ловя исключения, ЭТО это NegativeValueException, запустите этот код». – acupajoe