|
Spec-Zone .ru
спецификации, руководства, описания, API
|
java.lang.Throwable и его Подклассыthrow оператору (§14.16) разрешают бросить только экземпляры класса Throwable и его подклассы. Экземпляры двух подклассов, Error и Exception , традиционно используются, чтобы указать, что произошли исключительные ситуации. Как правило, эти экземпляры недавно создаются в контексте исключительной ситуации, чтобы включать релевантную информацию (такую как данные трассировки стека). Следующий список показывает иерархические отношения всех классов исключений, предопределенных в пакете java.lang языком Java:
Условно, классThrowableErrorLinkageErrorClassCircularityErrorClassFormatErrorExceptionInInitializerError
IncompatibleClassChangeErrorAbstractMethodErrorIllegalAccessErrorInstantiationErrorNoSuchFieldErrorNoSuchMethodErrorNoClassDefFoundErrorUnsatisfiedLinkErrorVerifyErrorVirtualMachineErrorInternalErrorOutOfMemoryErrorStackOverflowErrorUnknownErrorThreadDeathExceptionClassNotFoundExceptionCloneNotSupportedExceptionIllegalAccessExceptionInstantiationExceptionInterruptedExceptionRuntimeExceptionArithmeticExceptionArrayStoreExceptionClassCastExceptionIllegalArgumentExceptionIllegalThreadStateExceptionNumberFormatExceptionIllegalMonitorStateExceptionIndexOutOfBoundsExceptionNegativeArraySizeExceptionNullPointerExceptionSecurityException
Throwable и у всех его подклассов есть два конструктора, тот, который не берет параметров и того, который берет a String параметр, который может использоваться, чтобы произвести сообщение об ошибке. Это верно для всех классов, показанных выше с одним исключением: ExceptionInInitializerError. У этих предопределенных классов иначе нет никакого нового контента; они просто наследовали методы от класса Throwable.
public classThrowable{ publicThrowable(); publicThrowable(String message); public StringtoString(); public StringgetMessage(); public ThrowablefillInStackTrace(); public voidprintStackTrace(); public voidprintStackTrace(java.io.PrintStream s); }
20.22.1 public
Throwable()
Этот конструктор инициализирует недавно создаваемый Throwable объект с null как его строка сообщения об ошибке. Кроме того, метод fillInStackTrace (§20.22.5) вызывают для этого объекта.
20.22.2 public
Throwable(String message)
Этот конструктор инициализирует недавно создаваемый Throwable объект, сохраняя ссылку на строку сообщения об ошибке s для более позднего извлечения getMessage метод (§20.22.3). Кроме того, метод fillInStackTrace (§20.22.5) вызывают для этого объекта.
20.22.3 public String
getMessage()
Если это Throwable объект создавался со строкой сообщения об ошибке (§20.22.2), затем ссылка на ту строку возвращается.
Если это Throwable объект создавался без строки сообщения об ошибке (§20.22.1), тогда null возвращается.
20.22.4 public String
toString()
Если это Throwable объект создавался со строкой сообщения об ошибке (§20.22.2), тогда результатом является связь трех строк:
": " (двоеточие и пространство)
getMessage метод (§20.22.3) для этого объекта Throwable объект создавался без строки сообщения об ошибке (§20.22.1), тогда имя фактического класса этого объекта возвращается.20.22.5 public Throwable
fillInStackTrace()
Этот метод записывает в пределах этого Throwable объектная информация о текущем состоянии стековых фреймов для текущего потока.
20.22.6 public void
printStackTrace()
Этот метод печатает трассировку стека для этого Throwable объект на потоке вывода ошибок, который является значением поля System.err (§20.18.3). Первая строка вывода содержит результат toString метод (§20.22.4) для этого объекта. Остающиеся строки представляют данные, ранее записанные методом fillInStackTrace
(§20.22.5). Формат этой информации зависит от реализации, но следующий пример может быть расценен как типичный:
java.lang.NullPointerException at MyClass.mash(MyClass.java:9) at MyClass.crunch(MyClass.java:6) at MyClass.main(MyClass.java:3)Этот пример был произведен, выполняя программу:
class MyClass {
public static void main(String[] argv) {
crunch(null);
}
static void crunch(int[] a) {
mash(a);
}
static void mash(int[] b) {
System.out.println(b[0]);
}
Содержание | Предыдущий | Следующий | Индекс
Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com