Класс ошибки в Java - PullRequest
       1

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

12 голосов
/ 07 марта 2011

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

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

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

Ответы [ 3 ]

25 голосов
/ 07 марта 2011

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

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

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

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

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

0 голосов
/ 09 августа 2013

Ошибка

Ошибка: подкласс класса «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();
            }
 }

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

0 голосов
/ 07 марта 2011

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

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

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

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

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