这是一个关于最佳实践的问题。我有类似这样程序中的PL/SQL异常处理
DECLARE
--work variables
PROCEDURE p1(in_parameter1, out_parameter1, out_parameter2...) IS
BEGIN
--do stuff
--select (...) into (...) from t1 where (...)
END;
PROCEDURE p2(in_parameter1, out_parameter1, out_parameter2...) IS
BEGIN
--do stuff
--insert/update tables
--do more stuff
END;
BEGIN -- MAIN PROCESS STARTS HERE
open c1;
fetch c1 into c1RowData;
EXIT WHEN c1%NOTFOUND
--call procedure1
--do stuff
--call procedure2
--do stuff
--do stuff
--call procedure1
--call procedure2
END;
/
EXIT;
手续P1和P2语句的PL/SQL块也可能引发异常(NO_DATA_FOUND,DUP_VAL_ON_INDEX,...)。
您认为处理这些异常的最佳方法是什么?是否应该在程序中处理它们,或者您是否认为我应该将TRY-CATCH块的主体程序包含在每个调用中?
谢谢!你说这取决于“实际的功能实施(..)在程序中“,请您详细说明一下,在哪种情况下最好处理程序之外的异常情况? – bruno