Класс ошибок в Java
Я пытаюсь понять класс Error
в Java.
Я хорошо разбираюсь в классе Exception
, но не могу найти примеры кода для класса Error
. Я пробовал искать в Интернете, а также на веб-сайте java.sun, но я не нахожу ничего полезного, чтобы помочь мне понять это лучше.
Как использовать класс Error
в программах и где мы должны это использовать?
Ответы
Ответ 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, которые могут быть выбраны во время выполнения метода, но не пойманы, поскольку эти ошибки являются ненормальными условиями, которые никогда не должны возникать.