クラス ThrowableAnalyzer
- java.lang.Object
-
- org.springframework.security.web.util.ThrowableAnalyzer
public class ThrowableAnalyzer extends java.lang.Object
Throwable
インスタンスを分析するためのハンドラー。サブクラス化して動作をカスタマイズできます。- 導入:
- 2.0
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 static ThrowableCauseExtractor
DEFAULT_EXTRACTOR
Throwable
インスタンスのデフォルトの抽出プログラム。static ThrowableCauseExtractor
INVOCATIONTARGET_EXTRACTOR
InvocationTargetException
インスタンスのデフォルトの抽出プログラム。
コンストラクターのサマリー
コンストラクター コンストラクター 説明 ThrowableAnalyzer()
新しいThrowableAnalyzer
インスタンスを作成します。
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 java.lang.Throwable[]
determineCauseChain(java.lang.Throwable throwable)
提供されたThrowable
の原因チェーンを判別します。java.lang.Throwable
getFirstThrowableOfType(java.lang.Class<? extends java.lang.Throwable> throwableType, java.lang.Throwable[] chain)
渡された配列から、指定された型に割り当て可能な最初のスロー可能オブジェクトを返します。protected void
initExtractorMap()
Throwable
とThrowableCauseExtractor
の間の関連付けを初期化します。protected void
registerExtractor(java.lang.Class<? extends java.lang.Throwable> throwableType, ThrowableCauseExtractor extractor)
指定された型のThrowableCauseExtractor
を登録します。static void
verifyThrowableHierarchy(java.lang.Throwable throwable, java.lang.Class<? extends java.lang.Throwable> expectedBaseType)
提供されたスロー可能オブジェクトが、提供された型(または型自体)の有効なサブクラスであることを検証します。
フィールドの詳細
DEFAULT_EXTRACTOR
public static final ThrowableCauseExtractor DEFAULT_EXTRACTOR
Throwable
インスタンスのデフォルトの抽出プログラム。- 関連事項:
Throwable.getCause()
INVOCATIONTARGET_EXTRACTOR
public static final ThrowableCauseExtractor INVOCATIONTARGET_EXTRACTOR
InvocationTargetException
インスタンスのデフォルトの抽出プログラム。- 関連事項:
InvocationTargetException.getTargetException()
メソッドの詳細
registerExtractor
protected final void registerExtractor(java.lang.Class<? extends java.lang.Throwable> throwableType, ThrowableCauseExtractor extractor)
指定された型のThrowableCauseExtractor
を登録します。initExtractorMap()
をオーバーライドするサブクラスで使用できます。- パラメーター:
throwableType
- 型 (Throwable
のサブクラスである必要があります)extractor
- 関連するThrowableCauseExtractor
(null
ではありません)- 例外:
java.lang.IllegalArgumentException
- 引数の 1 つが無効な場合
initExtractorMap
protected void initExtractorMap()
Throwable
とThrowableCauseExtractor
の間の関連付けを初期化します。デフォルトの実装では、次の登録が実行されます。Throwable
のDEFAULT_EXTRACTOR
InvocationTargetException
のINVOCATIONTARGET_EXTRACTOR
このメソッドをオーバーライドするサブクラスは、スーパーメソッドを呼び出してデフォルトの登録を実行することをお勧めします。必要に応じて追加の抽出プログラムを登録できます。メモ: 特定の型に登録された抽出は、その型とそのすべてのサブ型に適用できます。ただし、より具象型に登録されたエクストラクターは、最初に解決されることが保証されています。デフォルトの場合、InvocationTargetExceptions は
INVOCATIONTARGET_EXTRACTOR
によって処理されますが、他のすべてのスロー可能オブジェクトはDEFAULT_EXTRACTOR
によって処理されます。
determineCauseChain
public final java.lang.Throwable[] determineCauseChain(java.lang.Throwable throwable)
提供されたThrowable
の原因チェーンを判別します。返される配列には、登録されたextractors
を使用して、スタックトレースから抽出されたすべてのスロー可能オブジェクトが含まれます。配列の要素は順序付けられています。最初の要素は throwable 自体に渡されます。次の要素は、スタックトレースの下方に順番に表示されます。メモ: このインスタンスに
ThrowableCauseExtractor
が登録されていない場合、返される配列には常に、渡された throwable のみが含まれます。- パラメーター:
throwable
- 分析するThrowable
- 戻り値:
- スタックトレースから決定されたすべてのスロー可能オブジェクトの配列
- 例外:
java.lang.IllegalArgumentException
- スロー可能オブジェクトがnull
の場合- 関連事項:
initExtractorMap()
getFirstThrowableOfType
public final java.lang.Throwable getFirstThrowableOfType(java.lang.Class<? extends java.lang.Throwable> throwableType, java.lang.Throwable[] chain)
渡された配列から、指定された型に割り当て可能な最初のスロー可能オブジェクトを返します。返されたインスタンスは、指定した型にキャストしても安全です。渡された配列が null または空の場合、このメソッドは
null
を返します。- パラメーター:
throwableType
- 探す型chain
- 配列 (要素順に処理されます)- 戻り値:
- 見つかった
Throwable
、見つからない場合はnull
- 例外:
java.lang.IllegalArgumentException
- 指定された型がnull
であるか、Throwable
のサブクラスがない場合
verifyThrowableHierarchy
public static void verifyThrowableHierarchy(java.lang.Throwable throwable, java.lang.Class<? extends java.lang.Throwable> expectedBaseType)
指定されたスロー可能オブジェクトが、指定された型(または型自体)の有効なサブクラスであることを確認します。expectdBaseType
がnull
の場合、チェックは実行されません。extractors
の実装で検証目的に使用できます。- パラメーター:
throwable
- チェックするThrowable
expectedBaseType
- チェックする型- 例外:
java.lang.IllegalArgumentException
-throwable
がnull
であるか、その型がexpectedBaseType
に割り当てられない場合