0

OTHERS 例外ブロックで、例外の種類を表示したいと思います。

EXCEPTION
    WHEN OTHERS THEN 
        DBMS_OUTPUT.PUT_LINE( -- I want to display the type of exception here -- ); 
END;
4

1 に答える 1

2

EXCEPTION WHEN OTHERS THEN特定の目的のない単純な例外ブロックよりも、堅牢な例外ブロックを好みます。例外をキャッチしてから、それについて何かを行うことを常に覚えておいてください。それ以外の場合は、ハンドルを呼び出し元に戻すために RE-RAISE する必要があります。

例外ブロックに、次を追加します。

DBMS_UTILITY. FORMAT_ERROR_STACK; DBMS_UTILITY.FORMAT_ERROR_BACKTRACE これにより、エラー スタックが得られ、バックトレース プロシージャによってエラーの正確な数が通知されます。EXCEPTION は呼び出し元からハンドルを取得するため、呼び出し元は発生したエラーについて知ることはありません。RAISEエラーを再発生させ、呼び出し元に返すステートメントを含めます。将来の調査のためにエラーをログに記録するには、エラー ログ テーブルを用意することをお勧めします。

その他の場合については、私の記事http://lalitkumarb.wordpress.com/2014/05/02/when-others-then-null-a-bug/をお読みください。

于 2014-09-16T15:20:30.590 に答える