クラス ThrowableAnalyzer


  • public class ThrowableAnalyzer
    extends java.lang.Object
    Throwable インスタンスを分析するためのハンドラー。サブクラス化して動作をカスタマイズできます。
    導入:
    2.0
    • コンストラクターのサマリー

      コンストラクター  
      コンストラクター 説明
      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)
      提供されたスロー可能オブジェクトが、提供された型(または型自体)の有効なサブクラスであることを検証します。
      • クラス java.lang.Object から継承されたメソッド

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • フィールドの詳細

      • DEFAULT_EXTRACTOR

        public static final ThrowableCauseExtractor DEFAULT_EXTRACTOR
        Throwable インスタンスのデフォルトの抽出プログラム。
        関連事項:
        Throwable.getCause()
      • INVOCATIONTARGET_EXTRACTOR

        public static final ThrowableCauseExtractor INVOCATIONTARGET_EXTRACTOR
        InvocationTargetException インスタンスのデフォルトの抽出プログラム。
        関連事項:
        InvocationTargetException.getTargetException()
    • コンストラクターの詳細

      • ThrowableAnalyzer

        public ThrowableAnalyzer()
        新しい ThrowableAnalyzer インスタンスを作成します。
    • メソッドの詳細

      • 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 の間の関連付けを初期化します。デフォルトの実装では、次の登録が実行されます。
        このメソッドをオーバーライドするサブクラスは、スーパーメソッドを呼び出してデフォルトの登録を実行することをお勧めします。必要に応じて追加の抽出プログラムを登録できます。

        メモ: 特定の型に登録された抽出は、その型とそのすべてのサブ型に適用できます。ただし、より具象型に登録されたエクストラクターは、最初に解決されることが保証されています。デフォルトの場合、InvocationTargetExceptions は INVOCATIONTARGET_EXTRACTOR によって処理されますが、他のすべてのスロー可能オブジェクトは DEFAULT_EXTRACTOR によって処理されます。

        関連事項:
        registerExtractor(Class, ThrowableCauseExtractor)
      • 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 に割り当てられない場合