1

次のコードの答えが「ORA -20002 5 is greater than 3」ではなく「Inside OTHERS」である理由を誰か教えてください。

BEGIN
IF 5>3 THEN
    RAISE_APPLICATION_ERROR (-20002, ‘5 is greater than 3’);
END IF;
EXCEPTION
    WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE(‘Inside OTHERS’);
END;

答え:OTHERSの中

4

2 に答える 2

4

発生した例外をキャッチし、コンソールに「Inside OTHERS」というメッセージを出力しているためです。

次のようなものが必要だと思います:

DECLARE
   comparison_error exception;
   PRAGMA EXCEPTION_INIT(comparison_error, -20002);
BEGIN
IF 5>3 THEN
    RAISE_APPLICATION_ERROR (comparison_error, '5 is greater than 3');
END IF;
EXCEPTION
    WHEN comparison_error THEN
        DBMS_OUTPUT.PUT_LINE('SQLERRM: ' || SQLERRM);
    WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('Inside OTHERS');
END;
于 2013-02-27T17:51:42.900 に答える
0

これを試して :

BEGIN
IF 5>3 THEN
RAISE_APPLICATION_ERROR (-20002, '5 is greater than 3');
END IF;
EXCEPTION
WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(sqlerrm);
    DBMS_OUTPUT.PUT_LINE('Inside OTHERS');
END;
于 2013-02-27T21:42:46.043 に答える