2015-09-03 3 views
0

Мне было любопытно, какой из throws и throw имеет более высокий приоритет, когда дело доходит до того же типа исключения (хотя это вряд ли произойдет в реальных примерах). Ниже приведен пример, который я наткнулся:Приоритет бросков и бросков для тех же самых исключений

public void sample() throws ArithmeticException{ 
    //Statements 

    ..... 

    //if (Condition : There is an error) 
    ArithmeticException exp = new ArithmeticException(); 
    throw exp; 
    ... 
} 
+3

Что вы имеете в виду? «Throws» в заголовке метода объявляет, какие исключения могут быть (или могут ожидаться) выбрасываться. «Бросок» - это то, где действительно будет выбрано исключение. Нет приоритета, потому что 'throws ArithmeticException' не _do_ ничего – CubeJockey

+0

@Trobbins Мне было интересно, если есть исключение, если мы объявим его с помощью' throws' и определим его с помощью 'throw' в теле метода, его бросают 'throws' или' throw', если это действительно исключение из-за времени выполнения (в этом случае, если у нас есть alrithmetic исключение)? – jsh6303

+0

_ «он брошен бросками или броском» _ 'throws' не _do_ ничего. Ничего не происходит, пока 'throw exp;' – CubeJockey

ответ

2

Ключевое слово throws означает, что метод может бросить исключение. Метод, объявляющий исключение, должен , а не. Просто они могут быть брошены. Таким образом, компилятор принуждает вызывающего пользователя улавливать эти исключения.

So throw на самом деле действительно бросает исключение. Его можно использовать, когда нет объявления throws.

+1

«Ключевое слово« throws »означает, что метод может« выкинуть »исключение. Те, которые называются проверенными исключениями». Я запутался, поскольку «ArithmeticException» не является исключенным исключением ... – jsh6303

+1

Вы правы. Должен сам читать мои ссылки :-) – lschuetze

+0

@ Ischuetze Мне было интересно, если есть исключение, если мы объявляем его с помощью бросков и определяем его с помощью throw в теле метода, его бросают броски или бросают, если есть действительно это исключение из среды выполнения (в этом случае, если у нас есть alrithmetic исключение)? – jsh6303

Смежные вопросы