RAISE_APPLICATION_ERROR内建函数用于抛出一个异常并给异常赋予一个错误号以及错误信息。自定义异常的缺省错误号是+1,缺省信息是User_Defined_Exception。RAISE_APPLICATION_ERROR函数能够在pl/sql程序块的执行部分和异常部分调用,显式抛出带特殊错误号的命名异常。 Raise_application_error(error_number,message[,true,false])) 错误号的范围是-20,000到-20,999。错误信息是文本字符串,最多为2048字节。TRUE和FALSE表示是添加(TRUE)进错误堆(ERROR STACK)还是覆盖(overwrite)错误堆(FALSE)。缺省情况下是FALSE。 如下代码所示: IF product_not_found THEN RAISE_APPLICATION_ERROR(-1111, 'Invald product code', TRUE); END IF;
存储过程中的when others then 和 raise
XCEPTION
when others then
rollback;
dbms_output.put_line('code:' || sqlcode);
dbms_output.put_line('errm:' || sqlerrm);
raise;
when others then和raise;
分别是什么意思
异常分很多种类,如NO_FOUND。others处本应该写异常名称,如果不想把异常分得那麼细,可以笼统一点用others来捕获, 即所有异常均用others来捕获。 when others then表示是其它异常。 raise表示抛出异常,让User可以看到。
