比如我有一个 循环,在循环里面出现异常,下面的循环能直接进行
例如
 for    loop
 发 送邮件,如果邮件地址出错了。会抛出一个异常 ,这个异常会被exception接收到,导致程序不能执行。
 end loop;exception 现在想问一下 当一个循环出现异常,其他循环能继续执行吗

解决方案 »

  1.   

    当然能啊。方法是把出错的循环操作放到begin ... exception ... end中
      

  2.   

     BEGIN
       FOR i IN 1..2 LOOP
        IF i=1 THEN
         PKG_D3BI_MAIL.Xp_Sendemail_2('test' || chr(10) || 'test','点播收入','[email protected]');--错误的会抛异常
         ELSE
         PKG_D3BI_MAIL.Xp_Sendemail_2('test' || chr(10) || 'test','点播收入2','[email protected]');--发邮件
         END IF;
       END LOOP;
         EXCEPTION
            WHEN OTHERS THEN
            ExcepError:=substr(SQLERRM,1,100); 
            dbms_output.put_line(ExcepError);
     
       END;这样,第2次不会循环,,,,,
      

  3.   

    可以用begin ... exception ... end嵌套就想try块的嵌套一样