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

Обработка исключений: бросок, броски и Throwable

Может ли кто-нибудь из вас объяснить различия между throw, throws и Throwable и когда использовать какой?

4b9b3361

Ответ 1

  • throws: используется при написании методов, чтобы объявить, что данный метод выбрал указанное (отмеченное) исключение.

    В отличие от проверенных исключений, исключение из среды выполнения (NullPointerExceptions и т.д.) может быть выбрано без использования метода declare throws NullPointerException.

  • throw: Инструкция для фактического выброса исключения. (Или, более конкретно, Throwable).

    За ключевым словом throw следует ссылка на Throwable (обычно это исключение).

Пример:

enter image description here


  • Throwable: класс, который вы должны расширить, чтобы создать свой собственный, настраиваемый, сбрасываемый.

Пример:

введите описание изображения здесь


Ответ 2

  • throw: оператор throw объекта t, где t instanceof java.lang.Throwable должен быть истинным.
  • throws: токен подписи метода для указания проверенных исключений throw n этим методом.
  • java.lang.Throwable: родительский тип всех объектов, которые могут быть выбраны (и пойманы).

См. здесь учебник по использованию исключений.

Ответ 3

Это очень легко понять.

java.lang.Throwable:

Класс Throwableсуперкласс всех ошибок и исключения на языке Java. Только объекты, которые являются экземплярами этого класс (или один из его подклассов) брошенный виртуальной машиной Java или могут быть выброшены Java throw. Аналогично, только этот класс или один из его подклассы могут быть аргументом введите в предложение catch. Подробнее

В объявлении метода используется ключевое слово throws, это указывает, какое исключение [Throwable class] мы можем ожидать от этого метода.

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


Чтобы не увидеть пример:

Мы создаем себе класс исключений

public class MyException super Exception {

}

Мы создаем метод, который создает объект из нашего класса исключений и выдает его с помощью ключевого слова throw.

private  void throwMeAException() throws MyException //We inform that this method throws an exception of MyException class
{
  Exception e = new MyException (); //We create an exception 

  if(true) {
    throw e; //We throw an exception 
  } 
}

Когда мы собираемся использовать метод throwMeAException(), мы вынуждены позаботиться об этом определенным образом, потому что у нас есть информация, которую он бросает, в этом случае у нас есть три варианта.

Первая опция использует блок try и catch для обработки исключения:

private void catchException() {

   try {
     throwMeAException();
   }
   catch(MyException e) {
     // Here we can serve only those exception that are instance of MyException
   }
}

Второй вариант - передать исключение

   private void passException() throws MyException {

       throwMeAException(); // we call the method but as we throws same exception we don't need try catch block.

   }

Третий вариант заключается в том, чтобы уловить и повторно выбросить исключение

private void catchException() throws Exception  {

   try {
     throwMeAException();
   }
   catch(Exception e) {
      throw e;
   }
}

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

Исключением этого правила являются java.lang.RuntimeException, которые не должны быть объявлены. Это еще одна история в качестве аспекта использования исключений.

Ответ 4

throw - Используется для выброса Exception. Для оператора throw требуется один аргумент: объект класса с возможностью добавления

throws - используется для указания, что метод может исключать исключение

Throwable - это суперкласс всех ошибок и исключений на языке Java. вы можете бросать только объекты, которые происходят из класса Throwable. throwable содержит моментальный снимок стека выполнения его потока в момент его создания.

Ответ 5

Throw используется для исключения исключения, throws (если я правильно догадался) используется, чтобы указать, что этот метод может вызвать конкретное исключение, а класс Throwable является суперклассом всех ошибок и исключений в Java

Как удалить исключения

Ответ 6

Throw:

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

throw new MyException("Exception!);

Броски:

Это должно использоваться, когда вы не используете оператор try catch в своем коде, но знаете, что этот конкретный класс способен выбрасывать такое исключение (только проверенные исключения). В этом случае вы не используете блок catch try, но пишите с помощью предложения throw в соответствующей точке вашего кода, и исключение передается вызывающему методу и обрабатывается им. Также ключевое слово throw используется, когда функция может вызывать проверенное исключение.

public void myMethod(int param) throws MyException 

Ответ 7

Throwable : в Java, все классы ошибок и исключений выходят из класса java.lang.Throwable. Это вершина иерархии классов ошибок и исключений. Только объекты, являющиеся экземплярами этого класса (или одного из его подклассов), выдаются виртуальной машиной Java или могут быть брошены инструкцией Java throw.

Throws: является модификатором пост-метода и указывает, какие методы могут быть вызваны методом. Если они отмечены исключениями, компилятор гарантирует, что код, вызывающий этот метод, должен поймать эти проверенные исключения.

Оператор

Throw: используется для выброса ошибки или исключений. throw требует один аргумент: экземпляр любого подкласса класса Throwable или Throwable. Выполнение инструкции throw запускает JVM для исключения этого исключения и вызывает исключение.

Ответ 8

Листинг...

Бросок

  • Ключевое слово Java throw используется для явного исключения throw исключения.
  • Проверенное исключение не может быть распространено только с помощью throw.
  • throw следует экземпляр.
  • throw используется внутри метода.
  • Вы не можете использовать throw несколько исключений.

Выдает

  • Ключевое слово Java throws используется для объявления исключения.
  • Проверенное исключение может быть распространено с помощью throws.
  • throws следует класс.
  • throws используется с сигнатурой метода.
  • Вы можете объявить несколько исключений , например. public void method()throws IOException,SQLException

Ответ 9

Тот же ответ, что и выше, но с удовольствие от копирования-пасты:

public class GsonBuilderHelper {
    // THROWS: method throws the specified (checked) exception
    public static Object registerAndRun(String json) throws Exception {

        // registering of the NaturalDeserializer
        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.registerTypeAdapter(Object.class, new NaturalDeserializer());
        Gson gson = gsonBuilder.create();

        Object natural = null;
        try {
            // calling the NaturalDeserializer
            natural = gson.fromJson(json, Object.class);
        } catch (Exception e) {
            // json formatting exception mainly
            Log.d("GsonBuilderHelper", "registerAndRun(json) error: " + e.toString());
            throw new Exception(e);  // <---- THROW: instance of class Throwable. 
        }
        return natural;
    }
}