当你运行一个过程,例如:
Declear
Begin
DELETE TABLE t_a where .....;
UPDATE t_b set .....;
DELETE TABLE t_c where .....;
Exception
WHEN OTHERS THEN
..............;
End;
如果其中一步发生异常,但我依然想继续执行下面的程序,按照上面的代码是不可能的。只要发生异常程序只会去到
Exception 的块中。
那怎么办呢?
只要你将程序改成:
Declear
Begin
begin
DELETE TABLE t_a where .....;
Exception
WHEN OTHERS THEN
null;
end;
begin
UPDATE t_b set .....;
Exception
WHEN OTHERS THEN
null;
end;
begin
DELETE TABLE t_c where .....;
Exception
WHEN OTHERS THEN
null;
end;
Exception
WHEN OTHERS THEN
..............;
End;
现在就可以实现你想要的程序流程了。
第一步,删除表 t_a 时,如果发生异常,程序就会进入匿名块的异常处理,而且异常处理并不进行任何处理,之后程序将进行 UPDATE t_b 的步骤。