Использование команды throws в Java - PullRequest
0 голосов
/ 31 мая 2018

Я знаю, что подобные вопросы есть везде, но я много об этом читал и до сих пор не могу понять, что делает команда «throws».Теперь я буду более конкретным:

Итак, один из примеров, которые я видел, был этот со следующим кодом:

public class CatchThrow {

private static void throwsMethod() throws NumberFormatException {
    String  intNumber = "5A";

    Integer.parseInt(intNumber);
}

private static void catchMethod() {
    try {

        throwsMethod();

    } catch (NumberFormatException e) {
        System.out.println("Convertion Error");
    }

}

public static void main(String[] args) {
    // TODO Auto-generated method stub

    catchMethod();
}

}

Теперь, если я удалю«throws NumberFormatException» из метода throwsMethod, программа будет работать так же, и даст те же результаты.Фактически, каждый пример с командой throws, которую я видел, делал то же самое, поэтому я не могу понять, зачем его использовать.

Я использую Eclipse IDE, версия 4.7.2.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Таким образом, в основном, если возникает исключение, и вы не хотите обрабатывать это исключение, в этом случае вы используете ключевое слово throw, чтобы просто выбросить исключение, если оно возникает.

Пример: здесьв throwsMethod () вы не заботитесь об обработке исключений, т.е. не используете блоки try (), catch (), вы просто бросаете их, если возникает какое-либо исключение.И вы попадете в блок catch (), если в вашем throwsMethod () возникнет исключение.

Чтобы получить лучшее представление, вы должны прочитать отмеченные и непроверенные исключения в Java.Для проверенных исключений (происходящих во время компиляции) мы используем ключевое слово throw, а для Unchecked (время выполнения) мы используем try () catch ().

Пример: NumberFormatException - исключение Unchecked, IOExceptionявляется проверенным исключением.

Прочитайте это для справки: https://www.geeksforgeeks.org/checked-vs-unchecked-exceptions-in-java/

0 голосов
/ 31 мая 2018

Обычно ваша функция завершается в конце функции или оператора возврата.

Однако функция также может завершиться, когда достигнет оператора throw.Если подклассы исключений Exception, вызывающая функция должна окружить вызов функции блоком try { } catch { }.Если подклассы исключений RuntimeException, вы можете опционально окружить вызов функции блоком try catch.

Если вы посмотрите на JavaDoc для NumberFormatException: https://docs.oracle.com/javase/7/docs/api/java/lang/NumberFormatException.html будетвидеть это подклассы RuntimeException.Это означает, что ваш блок try-catch является необязательным.Разница между этими двумя программами заключается в следующем: с блоком try-catch вы получите Convertion Error, напечатанный на консоли, без него вы увидите полную трассировку стека.Это часто называют «проглатыванием исключения».

...