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没有任何特定目的的琐碎。永远记住,你捕获异常然后做一些事情。否则,您需要重新提升它以将句柄还给调用者。

在您的异常块中,添加以下内容:

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 回答