在OTHERS异常块中,我想显示异常的类型。
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE( -- I want to display the type of exception here -- );
END;
我更喜欢健壮的异常块,而不是没有任何特定目的的琐碎的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/