Как правильно поправить код

Есть код:

`public static void main(String[] args) throws Exception {
   try {
       int a = 90;
       int b = 3;
       System.out.println(a / b);
       printSum(23, 234);
       int[] abc = { 1, 2 };
       abc[3] = 9;
   } catch (Throwable ex) {
       System.out.println("Что-то пошло не так...");
   } catch (NullPointerException ex) {
       System.out.println("Указатель не может указывать на null!");
   } catch (IndexOutOfBoundsException ex) {
       System.out.println("Массив выходит за пределы своего размера!");
   }
}
public static void printSum(Integer a, Integer b) throws FileNotFoundException {
   System.out.println(a + b);
}
`

Его нужно поправить. Я предполагаю, что нужно создать несколько методов (один с описанием Except и второй с catch отловом ошибок) но не совсем понимаю как правильно реализовать. Прошу помощи!


Ответы (1 шт):

Автор решения: Vadik

Ваш вопрос касается исключений, чтобы написать ваш код правильно касательно исключений, нужно их убрать:

public static void main(String[] args) {
    int a = 90;
    int b = 3;
    System.out.println(a / b);
    printSum(23, 234);
    int[] abc = {1, 2};
    abc[3] = 9;
}

public static void printSum(Integer a, Integer b) {
    System.out.println(a + b);
}
  • метод printSum не выбрасывает FileNotFoundException, это исключение нужно убрать из сигнатуры метода

  • ловить Throwable не нужно — это плохая практика, убираем (Throwable в Java это фатальные ошибки от которых вы не можете восстановиться, например, отсутствие памяти на устройстве)

  • NullPointerException и IndexOutOfBoundsException это рантайм исключения, обрабатывать не нужно, это "ошибка в коде у программиста", нужно фиксить код

В целом, ваш код не должен выбрасывать исключений, поэтому их вам использовать не нужно.

Но если при этом ваша программа будет падать с RuntimeException, то вам нужно исправить ошибки в коде, а не писать обработчики исключений.

→ Ссылка