Что за выражение «throws» используется здесь, а что, если не используется?

1

Это мой код

static void tryit() throws Exception
{
      System.out.println(10 / 0);
}

public static void main(String[] args) 
{
    try {
        tryit();

    } catch (Exception e) {
        System.out.println("Exception caught in main");
    }
}

вот что такое блуждание, в строке 1 этого кода throws Exception что именно делает?
Даже если бы я не использовал это, я также получил тот же результат, что и

Результат: Исключение в основной

Где это будет эффективно? Нужно ли в этом коде?

Теги:
exception
try-catch
throws

4 ответа

0
Лучший ответ

вот что такое блуждание, в строке 1 этого кода "бросает исключение", что именно делает?

Он возложил ответственность на вызывающую функцию, что этот метод может вызвать исключение, вы [Caller] должны его обработать.

И, в вашем случае, это RuntimeException будет RuntimeException из этого метода, поэтому нет необходимости объявлять метод с Exception. Вот почему, хотя, если вы удалили эту команду, она выбрасывает часть Exception.

Если метод выкинет проверенное исключение, и если вы не обработаете его внутри самого метода, вы объявите о том, чтобы выкинуть это исключение в подпись метода.

2

В этом случае вам не нужно throws Exception потому что ArithmeticException - это RuntimeException, компилятор не знает, что он будет выброшен, поэтому он не заставит вас справиться с этим. Видеть:

Изображение 174551

Случаи, когда вы должны это делать, если у вас есть исключение, а не исключение для выполнения, и вы не окружите строку, которая может вызвать исключение с предложением try-catch, тогда вам придется объявить метод, который будет throws ThatException,

0
in line 1 of this code "throws Exception" what exactly does?

throws указывает компилятору, что метод с ключевым словом throws имеет исключительное условие и не будет обрабатывать это исключение. Ответственность за любой метод, который вызвал метод с ключевым словом throw, несет ответственность за это исключение.

В вашем случае tryit() выбрасывает исключение, не обрабатывая исключительное условие. В основном вы вызвали tryIt(), поэтому основная задача - обработать исключительное исключение tryIt() throws Exception.

Where it will be effective? Is it necessary in this code?

Он эффективен, когда вы хотите, чтобы ваш метод вызывался с использованием правильной уловки try (проверенный тип исключения).

Это не обязательно в этом коде, потому что в коде, который вы получаете, java.lang.ArithmeticException:/путем исключения, которое является компилятором RuntimeException (Un Checked type), не будет жаловаться на то, что он не обрабатывает его.

для получения дополнительной информации в проверочном и непроверенном исключении см. Исправленное и непроверенное исключение

0

"throws" используется в сигнатуре метода, чтобы сообщить "родительский метод/метод, который вызывает эту функцию", чтобы эта функция "могла" генерировать исключение, а "родительский" метод/вызывающий должен ее обработать. И да, как это делает @maroun Maroun, "в текущем случае броски являются излишними"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню