Почему не могу поймать ошибку?
Всем привет. Нужна ваша помощь. У меня есть код который делит число на ноль. Но программа не может поймать ошибку. Как решить? Сможете помочь?
public class Main {
public static void main(String[] args) {
try
{
int x = 0;
int y = 5/x;
}
catch (Exception e)
{
System.out.println("erekshe zhagdai");
}
catch (ArithmeticException ae)
{
System.out.println("arithmetikalyk zhagdai");
}
System.out.println("ayaktaldy");
}
}
Это ошибка при компиляций:
Ответы (1 шт):
Автор решения: Sergey Chernikov
→ Ссылка
Ошибка вылетает по той причине, что ты написал неправильную последовательность перехвата исключений. Типы исключений должны идти от более специализированных к более общим. ArithmeticException наследуется от Exception, поэтому тебе в консоль и выводится, что это исключение уже поймано в блоке catch (Exception e). Просто поменяй порядок блоков catch и программа будет работать до конца без ошибок.
//сначала это
catch (ArithmeticException e)
{ System.out.println("ArithmeticException"); }
//потом это
catch (Exception e)
{ System.out.println("Exception"); }
