日期:2014-05-16  浏览次数:20428 次

捕获声明部分的异常
       常捕获作用于执行部分,而在声明部分抛出的异常是无法被捕获的

       比如,

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;

       除了声明部分,异常处理部分本身导致的异常同样也是无法捕获的,解决方法和声明部分一样,需要在外层进行捕获