Разница между try-catch и броском в java - PullRequest
50 голосов
/ 25 сентября 2010

В чем разница между оператором try-catch и throw. Когда их использовать?

Пожалуйста, дайте мне знать.

Ответы [ 6 ]

77 голосов
/ 25 сентября 2010
  • Блок try выполнит чувствительный код, который может выдавать исключения
  • Блок catch будет использоваться всякий раз, когда исключение (типа перехвачено) генерируется в блоке try
  • Блок finally вызывается в в каждом случае после блоков try / catch.Даже если исключение не обнаружено или если ваши предыдущие блоки нарушают поток выполнения.
  • Ключевое слово throw позволит вам вызвать исключение (которое нарушит поток выполнения и может быть перехвачено в catch block).
  • Ключевое слово throws в прототипе метода используется, чтобы указать, что ваш метод может выдавать исключения указанного типа.Это полезно, когда вы отметили исключение (исключение, которое вы должны обработать), которое вы не хотите перехватывать в своем текущем методе.

Ресурсы:


В другой заметке вы действительно должны принять некоторые ответы.Если кто-то столкнется с теми же проблемами, что и вы, и найдет ваши вопросы, он / она с радостью увидят правильный ответ на вопрос.

29 голосов
/ 06 декабря 2012

Если вы выполните следующий пример, вы узнаете разницу между блоком Throw и Catch.

В общих чертах:

Блок catch будет обрабатывать исключение

throws передаст ошибку своему вызывающему.

В следующем примере ошибка возникает в throwsMethod () , но она обрабатывается в catchMethod () .

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();
}

}
6 голосов
/ 25 сентября 2010

Предложение Try / catch и throw предназначено для разных целей.Таким образом, они не являются альтернативой друг другу, но они дополняют друг друга.

  1. Если вы выбросили какое-то проверенное исключение в своем коде, оно должно быть внутри некоторого try / catch в кодах, вызывающих иерархию.

  2. И наоборот, блок try / catch требуется только в том случае, если внутри кода есть какое-то предложение throw (ваш код или вызов API), которое выдает проверенное исключение.

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

4 голосов
/ 31 июля 2017

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

Для более подробной информации посетите Учебник по Java для начинающих .

1 голос
/ 01 августа 2017

Другие уже дали исчерпывающие ответы, но если вы ищете еще больше информации, учебники по Oracle Java всегда являются хорошим ресурсом. Вот учебник по Java для исключений, который подробно описывает все ваши вопросы; https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html

0 голосов
/ 15 февраля 2017

try - Добавить чувствительный код поймать - обработать исключение наконец - всегда выполняется независимо от того, поймано исключение или нет. Связано с try -catch. Используется для закрытия ресурса, который мы открыли в блоке try throw - для передачи созданного нами исключения в JVM вручную. Используется для создания настраиваемого исключения throws - делегировать ответственность за обработку исключений методу вызывающего или main метода.

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