Бросает предложение в основной метод - PullRequest
0 голосов
/ 11 июня 2019

Почему мне нужно поместить выражение throws в метод main для обработки исключения?Это не должно быть только try-catch должен обрабатывать исключения?Извините за мой английский

public static void main(String[] args) throws IOException {
    createFileDude();
}

public static void createFileDude() throws IOException {
    File file = new File("C:\\Users\\User\\Desktop\\Test.txt");
    try {
        System.out.println("Create file>> " + file.createNewFile());
    } catch (IOException e) {
        e.printStackTrace();
        throw e;
    }
}

1 Ответ

0 голосов
/ 01 июля 2019

Исключение означает, что что-то пошло не так в «текущем методе». Теперь разработчик может обработать его в блоке catch текущего метода или просто сказать вызывающему методу, что что-то пошло не так, как надо.

Таким образом, в конечном итоге разработчик может перевести ошибку обратно в операционную систему. Итак, все дело в том, чтобы сбросить ошибку обратно в вызывающий метод или не возвращать ее в какой-то момент.

В этом случае есть два места, где вы, как разработчик, можете решить, будет ли сообщение об исключении каскадно возвращаться в ОС или нет, во-первых, это метод, который вы написали. Как я вижу, вы писали, что исключение будет выдано, теперь в методе main у вас, как у разработчика, снова есть шанс не выбросить его в ОС (включив в него try-catch, но не добавив блок catch), или throw это к ОС.

В вашем примере вы решили выбросить его обратно в ОС, добавив предложение throws.

С точки зрения Java, Java хочет, чтобы вы (разработчик) принимали осознанное решение по любому заданному (проверенному) исключению, и поэтому вы будете видеть ошибки компиляции, пока вы либо не подавите исключение, не добавив, либо пока вы на самом деле сбросьте его обратно в ОС из метода 'main'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...