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

Класс ошибок в Java

Я пытаюсь понять класс Error в Java.

Я хорошо разбираюсь в классе Exception, но не могу найти примеры кода для класса Error. Я пробовал искать в Интернете, а также на веб-сайте java.sun, но я не нахожу ничего полезного, чтобы помочь мне понять это лучше.

Как использовать класс Error в программах и где мы должны это использовать?

4b9b3361

Ответ 1

Вы не используете Error в своем коде.

An Error - это особый тип Throwable, как и Exception.

  • Throwable - это базовый класс, который определяет все, что может быть выбрано.
  • Exception является обычным делом. Речь идет о проблемах, которые возникают во время выполнения вашей программы.
    • RuntimeException - это особый случай: он не установлен (т.е. он не должен быть объявлен методом, а компилятор не заставляет вас чтобы поймать его).
  • Error - это "редкий" случай: это означает проблемы, которые находятся вне контроля обычного приложения: ошибки JVM, из память, проблемы с проверкой байт-кода: это вещи, которые вы не должны обрабатывать, потому что, если они происходят, ситуация уже настолько плоха, что ваш код вряд ли сможет справиться с этим.

Не следует пытаться исправить ситуацию, в результате которой Error. Вы можете захотеть поймать его, чтобы зарегистрировать его, а затем перебросить его (см. JavaDoc ThreadDeath для примера о том, почему вам нужно реконструируйте его (спасибо @krock за хедз-ап)).

Нет другой причины бросать любой Error (т.е. не создавать Error самостоятельно и бросать его, если вы думаете, что хотите это сделать, используйте Exception или RuntimeException вместо этого).

Ответ 2

Ошибка

Ошибка подкласса класса "Throwable" вызывается системой времени java и указывает некоторые неустранимые условия во время выполнения программ   После того, как бросить трудно оправиться от него, и приложение прекратит работу.  Например.., java.lang.StackOverflowError и java.lang.OutofMemoryError

// Пример кода, который выдает StackOverflowError

public class ErrorDemo
   {
          public void method1()
            {
                   this.method2();
            }

          public void method2()
           {
                    this.method1();
           }

 public static void main(String sri[])
           {
                ErrorDemo k= new ErrorDemo();
                     k.method1();
            }
 }

В этом коде из основного метода мы вызываем метод1, а из метода1 был вызван метод method2 и снова из метода2, который мы вызываем методом method1, мы создали непрерывный цикл, который не заканчивается и, наконец, критический Ошибка StackOverflowError.

Ответ 3

Если вы посмотрите на Javadoc здесь, есть хорошее объяснение:

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

Что касается использования, у вас также есть следующее:

Не требуется метод объявлять в свойстве throws любые подклассы Error, которые могут быть выбраны во время выполнения метода, но не пойманы, поскольку эти ошибки являются ненормальными условиями, которые никогда не должны возникать.