我有一些应用程序使用以下过程:
procedure p1 is begin bla bla bla; end;
但是没有异常处理块.所以应用程序是根据此功能编写的.
现在我需要在p1中记录错误.但它不应该影响使用此过程的应用程序.
这样的东西
procedure p1 is begin bla bla bla; exception when others then log_error(sqlcode,sqlerrm); raise_new_exception (sqlcode,sqlerrm); end;
在raise_application_error的情况下,第一个参数应在[-20000,-20999]的范围内.所以如果引发异常no_data_found,它不能引发这个错误.
在exception_init的情况下,第二个参数不应该是可变的.它必须是数字字面值.
PS:作为临时解决方案,我正在使用立即执行
如果您的错误保持不变,请更改为
... exception when others then log_error(sqlcode,sqlerrm); raise; end; /
这是解释in the documentation.