Throwable Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Класс Throwable является суперклассом всех ошибок и исключений на языке Java.
[Android.Runtime.Register("java/lang/Throwable", DoNotGenerateAcw=true)]
public class Throwable : Java.Interop.JavaException, IDisposable, Java.IO.ISerializable
[<Android.Runtime.Register("java/lang/Throwable", DoNotGenerateAcw=true)>]
type Throwable = class
inherit JavaException
interface IJavaObject
interface IDisposable
interface ISerializable
interface IJavaPeerable
- Наследование
- Производный
- Атрибуты
- Реализации
Комментарии
Класс Throwable является суперклассом всех ошибок и исключений на языке Java. Только объекты, которые являются экземплярами этого класса (или одним из его подклассов), создаются Java виртуальной машиной throw или могут быть вызваны инструкцией Java. Аналогичным образом, только этот класс или один из его подклассов может быть типом аргумента в предложении catch .
Для проверки исключений во время компиляции и любого подклассаThrowable, Throwable который также не является подклассом либо RuntimeExceptionError считается проверенными исключениями.
Экземпляры двух подклассов java.lang.Error и java.lang.Exceptionобычно используются для обозначения того, что произошли исключительные ситуации. Как правило, эти экземпляры создаются в контексте исключительной ситуации, чтобы включить соответствующую информацию (например, данные трассировки стека).
Исключение содержит моментальный снимок стека выполнения потока во время его создания. Он также может содержать строку сообщения, которая предоставляет дополнительные сведения об ошибке. С течением времени бросаемый объект может создать исключение#addSuppressed, подавляя другие бросаемые элементы от распространения. Наконец, бросаемый может также содержать причину: еще один бросаемый, который вызвал это бросаемое создание. Запись этой причинной информации называется цепочкой исключения, так как причина может, сама по себе, иметь причину и т. д., что приводит к "цепочке" исключений , каждая из которых вызвана другим.
Одна из причин, по которой может возникнуть исключение, заключается в том, что класс, который создает его на вершине нижнего слоя абстракции, и операция на верхнем слое завершается сбоем из-за сбоя в нижнем слое. Это было бы плохой дизайн, чтобы позволить бросаемым, создаваемым нижним слоем распространяться наружу, так как обычно это не связано с абстракцией, предоставляемой верхним слоем. Кроме того, это привязывает API верхнего слоя к деталям его реализации, предполагая, что исключение нижнего слоя было проверено. Создание "завернутого исключения" (т. е. исключение, содержащее причину), позволяет верхнему уровню передавать сведения о неудаче вызывающей функции без возникновения каких-либо из этих недостатков. Она сохраняет гибкость для изменения реализации верхнего слоя, не изменяя его API (в частности, набор исключений, создаваемых его методами).
Вторая причина, по которой может возникнуть исключение, заключается в том, что метод, который вызывает его, должен соответствовать интерфейсу общего назначения, который не позволяет методу напрямую вызывать причину. Например, предположим, что постоянная коллекция соответствует java.util.Collection Collection интерфейсу и что ее сохраняемость реализуется на вершине java.io. Предположим, что внутренние компоненты add метода могут вызывать java.io.IOException IOException. Реализация может передавать сведения IOException о вызывающем объекте Collection при соответствии интерфейсу, завернув его IOException в соответствующее исключение без проверки. (Спецификация сохраняемой коллекции должна указывать на то, что она может вызывать такие исключения.)
Причина может быть связана с бросаемым методом двумя способами: с помощью конструктора, который принимает причину в качестве аргумента или с помощью #initCause(Throwable) метода. Новые бросаемые классы, которые хотят разрешить их связать с ними, должны предоставить конструкторам, которые принимают причину и делегат (возможно, косвенно) одному из Throwable конструкторов, которые принимают причину.
initCause Поскольку метод является общедоступным, он позволяет связать причину с любым бросаемым, даже "устаревшим бросаемым", реализация которого предшествует добавлению механизма Throwableцепочки исключений.
По соглашению класс Throwable и его подклассы имеют два конструктора, один из которых не принимает аргументов и тот, который String принимает аргумент, который можно использовать для создания подробного сообщения. Кроме того, эти подклассы, которые могут иметь причину, связанную с ними, должны иметь два дополнительных конструктора, один из которых принимает (причину), и тот, который принимает ThrowableString (подробное сообщение) и Throwable (причина).
Добавлено в версии 1.0.
Java документации по java.lang.Throwable.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя. | Описание |
|---|---|
| Throwable() |
Создает новый бросаемый объект в |
| Throwable(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
| Throwable(String, Throwable, Boolean, Boolean) |
Создает новый вызов с указанным сообщением подробностей, причиной, #addSuppressed подавлением включено или отключено, а также включена или отключена трассировка стека для записи. |
| Throwable(String, Throwable) |
Создает новый бросаемый объект с указанным сообщением о деталях и причиной. |
| Throwable(String) |
Создает новый бросаемый объект с указанным сообщением сведений. |
| Throwable(Throwable) |
Создает новый бросаемый объект с указанной причиной и подробным сообщением |
Поля
| Имя. | Описание |
|---|---|
| is_generated |
Указывает, был ли этот бросаемый объект создан привязкой. |
Свойства
| Имя. | Описание |
|---|---|
| Cause |
Возвращает причину этого бросаемого |
| Class |
Возвращает класс среды выполнения этого вызываемого объекта. |
| Handle |
Дескриптор базового экземпляра Android. |
| JavaStackTrace |
Класс |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. |
| JniManagedPeerState |
Класс |
| JniPeerMembers |
Возвращает метаданные JNI, используемые для вызова элементов этого Java однорангового узла. |
| LocalizedMessage |
Создает локализованное описание этого вызываемого объекта. |
| Message |
Возвращает строку подробного сообщения этого вызываемого объекта. |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. |
| StackTrace |
Возвращает строковое представление трассировки стека для этого вызываемого объекта. |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
| Имя. | Описание |
|---|---|
| AddSuppressed(Throwable) |
Добавляет указанное исключение к исключениям, которые были подавлены для доставки этого исключения. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Класс |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. |
| DisposeUnlessReferenced() |
Класс |
| Equals(Object) |
Класс |
| FillInStackTrace() |
Заполняет трассировку стека выполнения. |
| Finalize() |
Освобождает ресурсы до восстановления этого Java однорангового узла. |
| FromException(Exception) | |
| GetHashCode() |
Возвращает хэш-значение кода для объекта. (Унаследовано от JavaException) |
| GetStackTrace() |
Предоставляет программный доступ к сведениям трассировки стека, напечатанным |
| GetSuppressed() |
Возвращает массив, содержащий все исключения, которые были подавлены оператором |
| InitCause(Throwable) |
Инициализирует причину этого бросаемого значения в указанное значение. |
| PrintStackTrace() |
Выводит этот бросаемый объект и его обратную откат к стандартному потоку ошибок. |
| PrintStackTrace(PrintStream) |
Печатает этот бросаемый объект и его обратный вывод в указанный поток печати. |
| PrintStackTrace(PrintWriter) |
Печатает этот бросаемый объект и его обратный вывод в указанный модуль записи печати. |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. |
| SetJavaStackTrace(JniObjectReference) |
Класс |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Класс |
| SetStackTrace(StackTraceElement[]) |
Задает элементы трассировки стека, возвращаемые и печатаемые |
| ToException(Throwable) |
Возвращает управляемое исключение, соответствующее указанному Java вызываемому объекту. |
| ToString() |
Преобразует это значение в строку. |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. |
Явные реализации интерфейса
| Имя. | Описание |
|---|---|
| IJavaPeerable.Disposed() |
Класс |
| IJavaPeerable.Finalized() |
Класс |
| IJavaPeerable.JniObjectReferenceControlBlock |
Класс |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Класс |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Класс |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Класс |
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Класс |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |