异
常捕获作用于执行部分,而在声明部分抛出的异常是无法被捕获的
除了声明部分,异常处理部分本身导致的异常同样也是无法捕获的,解决方法和声明部分一样,需要在外层进行捕获
比如,
DECLARE
var_id number :='Think';
BEGIN
NULL;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE('Exception captured');
END;
处理的方法,其实也很简单,就是在外面套一层,天凉了,多件外套哟~
BEGIN
DECLARE
var_id number :='Think';
BEGIN
NULL;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE('Exception captured');
END;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE('Exception captured');
END;
除了声明部分,异常处理部分本身导致的异常同样也是无法捕获的,解决方法和声明部分一样,需要在外层进行捕获