Throwable Класс

Определение

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

[Android.Runtime.Register("java/lang/Throwable", DoNotGenerateAcw=true)]
public class Throwable : Exception, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable
[<Android.Runtime.Register("java/lang/Throwable", DoNotGenerateAcw=true)>]
type Throwable = class
    inherit Exception
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ISerializable
Наследование
Throwable
Производный
Атрибуты
Реализации

Комментарии

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

Для целей проверки исключений во время компиляции, и любой Throwable подкласс , Throwable который не является также подклассом либо RuntimeExceptionError, считаются проверенными исключениями.

Экземпляры двух подклассов, java.lang.Error и java.lang.Exception, обычно используются для указания на исключительные ситуации. Как правило, эти экземпляры создаются только в контексте исключительной ситуации, чтобы включить соответствующую информацию (например, данные трассировки стека).

Бросаемый объект содержит snapshot стека выполнения своего потока на момент его создания. Он также может содержать строку сообщения, которая предоставляет дополнительные сведения об ошибке. Со временем вызываемый объект может throwable#addSuppressed подавлять распространение других бросаемых элементов. Наконец, бросаемый объект также может содержать причину: другой бросаемый объект, который вызвал создание этого бросаемого объекта. Запись этих причинно-следственных сведений называется объектом цепочек исключений , так как сама причина может иметь причину и т. д., что приводит к "цепочке" исключений, каждое из которых вызвано другим.

Одна из причин, по которой у вызываемого объекта может быть причина, заключается в том, что класс, который создает его, строится на вершине более низкоуровневой абстракции, а операция на верхнем слое завершается сбоем из-за сбоя в нижнем слое. Было бы неправильно позволить бросаемому объекту, созданному нижним слоем, распространяться наружу, так как это обычно не связано с абстракцией, предоставляемой верхним слоем. Кроме того, это приведет к привязке API верхнего слоя к деталям его реализации, при условии, что исключение нижнего слоя было проверенным исключением. Создание "упаковаемого исключения" (т. е. исключения, содержащего причину) позволяет верхнему уровню передавать сведения о сбое вызывающей объекту, не вызывая ни один из этих недостатков. Он сохраняет гибкость при изменении реализации верхнего слоя без изменения его API (в частности, набора исключений, создаваемых его методами).

Вторая причина, по которой у вызываемого файла может быть причина, заключается в том, что метод, который его вызывает, должен соответствовать интерфейсу общего назначения, который не позволяет методу напрямую вызывать причину. Например, предположим, что постоянная коллекция соответствует интерфейсу java.util.Collection Collection и что ее сохраняемость реализована на вершине java.io. Предположим, внутренние компоненты add метода могут вызвать исключение java.io.IOException IOException. Реализация может передавать сведения IOException о вызывающей объекте при соответствии интерфейсу Collection путем упаковки IOException в соответствующее исключение без проверки. (Спецификация для постоянной коллекции должна указывать, что она может создавать такие исключения.)

Причину можно связать с вызываемым объектом двумя способами: с помощью конструктора, который принимает причину в качестве аргумента #initCause(Throwable) , или с помощью метода . Новые бросаемые классы, которые хотят, чтобы причины были связаны с ними, должны предоставлять конструкторы, которые принимают причину и делегируют (возможно, косвенно) одному из Throwable конструкторов, которые принимают причину.

initCause Так как метод является открытым, он позволяет связать причину с любым бросаемым объектом, даже с "устаревшим бросаемым объектом", реализация которого предшествовала добавлению механизма цепочки исключений в Throwable.

По соглашению класс Throwable и его подклассы имеют два конструктора, один из которых не принимает аргументы, а второй — String аргумент, который можно использовать для создания подробного сообщения. Кроме того, эти подклассы, которые, вероятно, могут иметь причину, связанную с ними, должны иметь еще два конструктора, один из которых принимает Throwable (причина), а второй принимает String (подробное сообщение) и ( Throwable причину).

Добавлено в версии 1.0.

Документация по Java для java.lang.Throwable.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

Конструкторы

Throwable()

Создает новый бросаемый объект с null в качестве подробного сообщения.

Throwable(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Throwable(String)

Создает новый бросаемый объект с указанным подробным сообщением.

Throwable(String, Throwable)

Создает новый бросаемый объект с указанным подробным сообщением и причиной.

Throwable(String, Throwable, Boolean, Boolean)

Создает новый бросаемый объект с указанным сообщением сведений, причиной, #addSuppressed подавлением включен или отключен, а также трассировкой стека, доступной для записи, включенной или отключенной.

Throwable(Throwable)

Создает новый бросаемый объект с указанной причиной и подробным сообщением (cause==null ? null : cause.toString()) (который обычно содержит сообщение класса и сведений ).cause

Поля

is_generated

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

Свойства

Cause

Возвращает причину этого бросаемого объекта или null значение , если причина не существует или неизвестна.

Class

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

Handle

Дескриптор базового экземпляра Android.

JniIdentityHashCode

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

JniPeerMembers

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

LocalizedMessage

Создает локализованное описание этого вызываемого объекта.

Message

Возвращает строку подробного сообщения этого бросаемого объекта.

PeerReference

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

StackTrace

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

AddSuppressed(Throwable)

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

Dispose()

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

Dispose(Boolean)

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

FillInStackTrace()

Заполняет трассировку стека выполнения.

Finalize()

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

FromException(Exception)

Преобразует Exception в Throwable.

GetStackTrace()

Предоставляет программный доступ к сведениям трассировки стека, напечатанным с помощью #printStackTrace().

GetSuppressed()

Возвращает массив, содержащий все исключения, которые были подавлены, как правило, инструкцией try-with-resources для доставки этого исключения.

InitCause(Throwable)

Инициализирует причину этого вызываемого объекта указанным значением.

PrintStackTrace()

Выводит этот бросаемый объект и его обратную трассировку в стандартный поток ошибок.

PrintStackTrace(PrintStream)

Выводит этот бросаемый объект и его обратную трассировку в указанный поток печати.

PrintStackTrace(PrintWriter)

Печатает этот бросаемый объект и его обратную трассировку в указанный модуль записи печати.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

SetStackTrace(StackTraceElement[])

Задает элементы трассировки стека, которые будут возвращены #getStackTrace() и напечатаны соответствующими методами #printStackTrace() .

ToException(Throwable)

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

ToString()

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

UnregisterFromRuntime()

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

Явные реализации интерфейса

IJavaPeerable.Disposed()

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

IJavaPeerable.DisposeUnlessReferenced()

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

IJavaPeerable.Finalized()

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

IJavaPeerable.JniManagedPeerState

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

IJavaPeerable.SetJniIdentityHashCode(Int32)

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

IJavaPeerable.SetPeerReference(JniObjectReference)

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенное средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

GetJniTypeName(IJavaPeerable)

Класс Throwable является суперклассом всех ошибок и исключений в языке Java.

Применяется к