クラス ThrowableAnalyzer
- java.lang.Object
-
- org.springframework.security.web.util.ThrowableAnalyzer
public class ThrowableAnalyzer extends java.lang.ObjectThrowableインスタンスを分析するためのハンドラー。サブクラス化して動作をカスタマイズできます。- 導入:
- 2.0
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static ThrowableCauseExtractorDEFAULT_EXTRACTORThrowableインスタンスのデフォルトの抽出プログラム。static ThrowableCauseExtractorINVOCATIONTARGET_EXTRACTORInvocationTargetExceptionインスタンスのデフォルトの抽出プログラム。
コンストラクターの概要
コンストラクター コンストラクター 説明 ThrowableAnalyzer()新しいThrowableAnalyzerインスタンスを作成します。
方法の概要
すべてのメソッド 静的メソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 java.lang.Throwable[]determineCauseChain(java.lang.Throwable throwable)提供されたThrowableの原因チェーンを判別します。java.lang.ThrowablegetFirstThrowableOfType(java.lang.Class<? extends java.lang.Throwable> throwableType, java.lang.Throwable[] chain)渡された配列から、指定された型に割り当て可能な最初のスロー可能オブジェクトを返します。protected voidinitExtractorMap()ThrowableとThrowableCauseExtractorの間の関連付けを初期化します。protected voidregisterExtractor(java.lang.Class<? extends java.lang.Throwable> throwableType, ThrowableCauseExtractor extractor)指定された型のThrowableCauseExtractorを登録します。static voidverifyThrowableHierarchy(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_EXTRACTORInvocationTargetExceptionの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- チェックするThrowableexpectedBaseType- チェックする型- 例外:
java.lang.IllegalArgumentException-throwableがnullであるか、その型がexpectedBaseTypeに割り当てられない場合