Oracleはどのようにユーザー定義の例外を投げますか?
Oracleでは、`RAISE`ステートメントを使用してカスタム例外をスローすることができます。カスタム例外をスローする方法は次の通りです:まず、データベースで例外を定義する必要があります。
CREATE OR REPLACE EXCEPTION custom_exception_name
[PRAGMA EXCEPTION_INIT (exception_name, -error_code)];
`custom_exception_name`は、カスタム例外の名前であり、必要に応じて命名できます。例外を初期化するために`PRAGMA EXCEPTION_INIT`を使用し、例外コード(`error_code`)を指定できます。2. 例外をスローする必要がある場所で`RAISE`ステートメントを使用します。
RAISE custom_exception_name;
例えば、例外が発生した際に例外メッセージを指定することもできます。
RAISE_APPLICATION_ERROR(error_code, 'error_message');
error_code はエラーコードであり、error_message はエラーメッセージです。次は、例外の作成を例示した完全な例です。
CREATE OR REPLACE EXCEPTION custom_exception
PRAGMA EXCEPTION_INIT (custom_exception, -20001);
ストアドプロシージャを作成する
CREATE OR REPLACE PROCEDURE custom_exception_example
IS
BEGIN
— 抛出异常
RAISE custom_exception;
EXCEPTION
WHEN custom_exception THEN
— 处理异常
DBMS_OUTPUT.PUT_LINE(‘Custom Exception Raised’);
END;
上記の例では、`custom_exception_example`というストアドプロシージャを呼び出すと、`custom_exception`というカスタム例外がスローされます。その後、例外処理部分でその例外を処理します。