1

Oracle pl/sql プロシージャがある場合、次のような例外ブロックを定義します。

exception
WHEN OTHERS THEN
errMsg := substr(SQLERRM, 1, 100);
  dbms_output.put_line ('--> Error ALIAS1: ' || errMsg);
end;

どのような例外が発生しても、これは実行されますか?

4

1 に答える 1

2

WHEN OTHERSWHEN独自の句で明示的に処理されないPL/SQL例外のキャッチオールです。

そのため、通常、これを使用することはお勧めできません。何か悪いことが起こっているという重要なメッセージを誤ってトラップして失うのは簡単です。発生すると予想される特定の例外をキャッチして処理する必要があります。他の例外を記録またはログに記録したい場合はRAISE、例外ハンドラーに a を含めて、他のすべてが正常に伝播されるようにする必要があります。

...
exception
    when others then
        errMsg := substr(SQLERRM, 1, 100);
        dbms_output.put_line ('--> Error ALIAS1: ' || errMsg);
        raise;
end;

一般的な例外の詳細については、こちらおよびこちら についてお読みOTHERS ください

于 2013-04-26T16:30:25.403 に答える