捕捉sql异常java plsql捕获异常

您所在的位置:网站首页 java捕获sql异常 捕捉sql异常java plsql捕获异常

捕捉sql异常java plsql捕获异常

2024-07-15 09:23| 来源: 网络整理| 查看: 265

程序执行过程中出现错误情况被称为在PL/SQL异常。 PL/SQL支持程序员在程序中使用异常块捕获这样的条件并采取适当的动作应对错误情况。有两种类型的异常:

系统定义的异常

用户定义的异常

异常处理语法

一般异常处理的语法如下。在这里可以列出下来很多,要处理异常。默认的异常将使用WHEN others THEN处理:

DECLAREBEGINEXCEPTION

WHENexception1 THENexception1-handling-statements

WHENexception2 THENexception2-handling-statements

WHENexception3 THENexception3-handling-statements

........WHENothers THENexception3-handling-statements

END;

示例

写一些简单的代码来说明这个概念。将使用我们已经创建,并在前面的章节中使用的CUSTOMERS表:

DECLAREc_id customers.id%type :=8;c_name customers.name%type;c_addr customers.address%type;BEGINSELECTname,address INTOc_name,c_addr

FROMcustomers

WHEREid =c_id;DBMS_OUTPUT.PUT_LINE ('Name: '||c_name);DBMS_OUTPUT.PUT_LINE ('Address: '||c_addr);EXCEPTION

WHENno_data_found THENdbms_output.put_line('No such customer!');WHENothers THENdbms_output.put_line('Error!');END;/

当上述代码在SQL提示符执行时,它产生了以下结果:

No such customer!

PL/SQL procedure successfully completed.

上述程序显示一个客户的ID给出的名字和地址。由于在我们的数据库没有ID值为8的客户,该程序运行时引发一个异常NO_DATA_FOUND,这是捕获异常EXCEPTION块。

引发异常

异常是数据库服务器自动在内部数据库错误,但异常可以明确地提出由程序员使用命令RAISE。以下是引发异常的简单的语法:

DECLAREexception_name EXCEPTION;BEGINIFcondition THENRAISE exception_name;ENDIF;EXCEPTION

WHENexception_name THENstatement;END;

可以在引发Oracle的标准异常或任何用户定义的异常使用上述语法。下一节会显示如何引发用户定义异常,引发Oracle标准异常以及类似的方法的例子。

用户自定义异常

PL/SQL允许根据程序的需要定义自己的异常。用户定义的异常必须声明,然后明确地提出使用一个RAISE语句或程序DBMS_STANDARD.RAISE_APPLICATION_ERROR。

声明一个异常的语法是:

DECLAREmy-exception EXCEPTION;

示例:

下面的例子说明了这个概念。该程序需要一个客户ID,当用户输入了一个无效的ID,异常invalid_id引发。

DECLAREc_id customers.id%type :=&cc_id;c_name customers.name%type;c_addr customers.address%type;-- user defined exceptionex_invalid_id EXCEPTION;BEGINIFc_id



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3