关于Oracle发送邮件的时候,其中写了一个发送邮件的存储过程。其中代码 UTL_SMTP.RCPT(L_CONN, 发送的目的邮箱地址);
如果目的地址不存在则不能发送报错,程序也会推出,我想目的地址不存在,报错,但是存储过程不推出,继续,发后面的邮件。怎么样捕获到那个异常,而不退出。

解决方案 »

  1.   

    可以在内部嵌套一个匿名块begin
       发送邮件
    exception
       when 错误码 then
           记录日志
    end;在发送的命令上套这个匿名块就可以做到了
      

  2.   

    --捕获异常
    begin
        --发送邮件代码
    exception 
         when ... then
       --异常处理代码
        when others then --吞掉其它所有异常
             null;
    end;
    --可以继续其它的语句可参考
      

  3.   

    v_exception exception;--自定义异常
    begin
      --发送邮件代码
      if 不存在 then
        --抛出异常
        raise v_exception;
      end if;
      exception 
      when others then 
      --异常信息
    end;