Подтвердить что ты не робот

Java: бросает ли исключение свой метод?

Например:

public String showMsg(String msg) throws Exception {
    if(msg == null) {
        throw new Exception("Message is null");
    }
    //Create message anyways and return it
    return "DEFAULT MESSAGE";
}

String msg = null;
try {
    msg = showMsg(null);
} catch (Exception e) {
    //I just want to ignore this right now.
}
System.out.println(msg); //Will this equal DEFAULT MESSAGE or null?

Мне нужно по существу игнорировать исключения в некоторых случаях (обычно, когда несколько исключений могут быть выбраны из метода, и в конкретном случае это не имеет значения), поэтому, несмотря на жалкий пример, который я использовал для простоты, showMsg все еще выполняется или действительно ли бросок возвращает метод?

4b9b3361

Ответ 1

Оператор return не запускается, если генерируется исключение. Выброс исключения приводит к тому, что поток управления вашей программой немедленно переходит к обработчику исключений (*), пропуская что-либо еще на этом пути. Так что в частности msg будет null в вашем заявлении на печать, если исключение было выбрано showMsg.

(*) За исключением того, что в блоках finally будут выполняться команды, но это действительно не актуально.