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 言語のすべてのエラーと例外のスーパークラスです。 このクラスのインスタンス (またはそのサブクラスの 1 つ) であるオブジェクトのみが、Java仮想マシンによってスローされるか、Java throw ステートメントによってスローされます。 同様に、このクラスまたはそのサブクラスの 1 つだけを catch 句の引数型にすることができます。

例外のコンパイル時のチェックのために、Throwableと、ThrowableまたはRuntimeExceptionのサブクラスでもないErrorのサブクラスは、チェックされた例外と見なされます。

java.lang.Errorjava.lang.Exceptionの 2 つのサブクラスのインスタンスは、通常、例外的な状況が発生したことを示すために使用されます。 通常、これらのインスタンスは、関連する情報 (スタック トレース データなど) を含むように、例外的な状況のコンテキストで新しく作成されます。

throwable には、作成時のスレッドの実行スタックのスナップショットが含まれます。 また、エラーに関する詳細情報を提供するメッセージ文字列を含めることもできます。 時間の経過と同時に、throwable#addSuppressed によって、他のスロー可能なスロー可能が伝達されないようにすることができます。 最後に、throwable には、このスロー可能なオブジェクトを構築する原因となった別のスロー可能な 原因を含めることもできます。 この因果情報の記録は、原因自体に原因がある可能性があるため、 チェーン例外 機能と呼ばれ、それぞれが別の例外によって引き起こされる例外の "チェーン" につながります。

スロー可能な場合に原因が考えられる理由の 1 つは、スローするクラスが下位レイヤーの抽象化の上に構築され、上位レイヤーの操作が下位レイヤーの障害のために失敗する場合です。 一般的に上層によって提供される抽象化とは無関係であるため、下位レイヤーによってスローされるスロー可能なオブジェクトを外側に伝播させるのは不適切な設計です。 さらに、これを行うと、上位レイヤーの API がその実装の詳細に結び付けられます。これは、下位レイヤーの例外がチェックされた例外であると仮定します。 "ラップされた例外" (つまり、原因を含む例外) をスローすると、上位レイヤーは、これらの欠点のいずれかを発生させることなく、エラーの詳細を呼び出し元に伝達できます。 API (特に、メソッドによってスローされる例外のセット) を変更することなく、上位レイヤーの実装を柔軟に変更できます。

スロー可能な場合に原因が考えられる 2 つ目の理由は、スローするメソッドが原因を直接スローすることを許可しない汎用インターフェイスに準拠している必要があるということです。 たとえば、永続的なコレクションが java.util.Collection Collection インターフェイスに準拠し、その永続化が java.ioの上に実装されるとします。 add メソッドの内部がjava.io.IOException IOExceptionをスローできるとします。 実装では、IOExceptionを適切なチェックされていない例外でラップすることで、Collection インターフェイスに準拠しながら、IOExceptionの詳細を呼び出し元に伝えることができます。 (永続コレクションの仕様は、このような例外をスローできることを示す必要があります)。

原因は、引数として原因を受け取るコンストラクターを介して、または #initCause(Throwable) メソッドを介して、2 つの方法でスロー可能に関連付けることができます。 原因を関連付けできるようにする新しいスロー可能なクラスは、原因を受け取るコンストラクターと、原因を取る Throwable コンストラクターのいずれかに (おそらく間接的に) デリゲートするコンストラクターを提供する必要があります。

initCause メソッドはパブリックであるため、例外チェーン メカニズムをThrowableに追加する前の実装を持つ"レガシ スロー可能" であっても、スロー可能な任意の原因に関連付けられます。

慣例により、クラス Throwable とそのサブクラスには 2 つのコンストラクターがあります。1 つは引数を受け取らなくなり、1 つは詳細メッセージの生成に使用できる String 引数を受け取ります。 さらに、原因が関連付けられている可能性があるサブクラスには、さらに 2 つのコンストラクターが必要です。1 つは Throwable (原因) を受け取り、もう 1 つは String (詳細メッセージ) と Throwable (原因) を受け取ります。

1.0 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
Throwable()

nullを詳細メッセージとして使用して、新しいスロー可能なオブジェクトを構築します。

Throwable(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

Throwable(String, Throwable, Boolean, Boolean)

指定した詳細メッセージ、原因、#addSuppressed 抑制が有効または無効、書き込み可能なスタック トレースが有効または無効になっている新しいスロー可能なスタック トレースを構築します。

Throwable(String, Throwable)

指定した詳細メッセージと原因を使用して、新しいスロー可能なメッセージを構築します。

Throwable(String)

指定した詳細メッセージを使用して、新しいスロー可能なオブジェクトを構築します。

Throwable(Throwable)

指定した原因と (cause==null ? null : cause.toString()) の詳細メッセージ (通常は causeのクラスと詳細メッセージを含む) を使用して、新しいスロー可能なオブジェクトを構築します。

フィールド

名前 説明
is_generated

このスロー可能なオブジェクトがバインディングによって生成されたかどうかを示します。

プロパティ

名前 説明
Cause

原因が存在しないか不明な場合は、このスロー可能または null の原因を返します。

Class

このスロー可能なランタイム クラスを取得します。

Handle

基になる Android インスタンスへのハンドル。

JavaStackTrace

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

JniManagedPeerState

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
JniPeerMembers

このJava ピアのメンバーを呼び出すために使用される JNI メタデータを取得します。

LocalizedMessage

このスロー可能なローカライズされた説明を作成します。

Message

このスロー可能な詳細メッセージ文字列を返します。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

StackTrace

このスロー可能なスタック トレースの文字列形式を取得します。

ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

名前 説明
AddSuppressed(Throwable)

この例外を配信するために抑制された例外に、指定した例外を追加します。

Construct(JniObjectReference, JniObjectReferenceOptions)

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
Dispose()

このJava ピアによって保持されているリソースを解放します。

Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

DisposeUnlessReferenced()

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
Equals(Object)

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
FillInStackTrace()

実行スタック トレースを入力します。

Finalize()

このJava ピアが再利用される前にリソースを解放します。

FromException(Exception)

ExceptionThrowableに変換します。

GetHashCode()

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
GetStackTrace()

#printStackTrace()によって出力されるスタック トレース情報へのプログラムによるアクセスを提供します。

GetSuppressed()

この例外を配信するために、通常は try with-resources ステートメントによって抑制されたすべての例外を含む配列を返します。

InitCause(Throwable)

このスロー可能なを指定した値に初期化します。

PrintStackTrace()

このスロー可能とそのバックトレースを標準エラー ストリームに出力します。

PrintStackTrace(PrintStream)

このスロー可能なオブジェクトとそのバックトレースを、指定された印刷ストリームに出力します。

PrintStackTrace(PrintWriter)

このスロー可能ファイルとそのバックトレースを、指定された印刷ライターに出力します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

SetJavaStackTrace(JniObjectReference)

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
SetStackTrace(StackTraceElement[])

#getStackTrace()によって返され、#printStackTrace()および関連するメソッドによって出力されるスタック トレース要素を設定します。

ToException(Throwable)

指定したスロー可能なJavaに対応するマネージド例外を返します。

ToString()

この値を文字列に変換します。

UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
IJavaPeerable.Finalized()

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
IJavaPeerable.JniObjectReferenceControlBlock

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)
IJavaPeerable.SetPeerReference(JniObjectReference)

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

(継承元 JavaException)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象