PLSQL NOTE--------EXCEPTION

plsql exception 抛出和处理

1.获得EXCEPTION 具体信息:

 dbms_output.put_line('error code is: '||sqlcode);
 --输出异常号
 dbms_output.put_line('error message is: '||sqlerrm);
 --输出异常内容
 dbms_output.put_line('error position is: '||DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
 --输出异常位置

 

2.异常的抛出

declare
     ProcessException EXCEPTION;
     PRAGMA EXCEPTION_INIT (ProcessException, -20028);
 begin
     raise_application_error (-20028, (('')
         || (error_code ))
         || (error_message ));
 exception when ProcessException then
     --dbms_output.put_line('sqlerrm: ' || sqlerrm);  
     dbms_output.put_line('error code is : ' || regexp_substr(sqlerrm, '\d+', 1, 2));
     dbms_output.put_line('error message is : ' || substr(sqlerrm, (length(regexp_substr(sqlerrm, '\d+', 1, 2)) + to_number(regexp_instr(sqlerrm, '\d+', 1, 2)))));
 end;
 /

 

3.异常的处理

exception

when exception 1 then

when exception 2 then

...

when others then

end;

你可能感兴趣的:(PLSQL NOTE--------EXCEPTION)