Предположим, у меня есть это исключение:
class NoMoreCarrotsException extends Exception {}
Это проверенное исключение, поэтому оно должно быть обработано или объявлено.
Предположим, у меня есть этот метод:
private static void eatCarrot(){}
public void fails(){
try{
eatCarrot();
}catch(NoMoreCarrotsException e){}
}
А вот этот:
public void works() throws NoMoreCarrotsException {
eatCarrot();
}
Почему работает второй, а не первый?
Метод eatCarrot
не вызывает исключение, так почему мы можем объявить / выбросить его?