`

ORACLE 用户自定义异常

 
阅读更多
1CREATE OR REPLACE PROCEDURE test_Exception_byLeejin
2(
3  ParameterA IN varchar2,
4  ParameterB IN varchar2,
5  ErrorCode  OUT varchar2  --返回值,错误编码
6)
7AS
8  /*以下是一些变量的定义*/
9  V1    NUMBER;
10  V2    nvarchar2(20);
11  V3    NUMBER;   
12  APP_EXP  EXCEPTION;  --自定义异常
13BEGIN
14  ErrorCode :='';
15  IF (ParameterA=ParameterB) THEN
16     ErrorCode := 'ParameterA = ParameterB';
17     RAISE APP_EXP;     -- 抛出异常
18  END IF;
19EXCEPTION
20  WHEN APP_EXP THEN     --在处理异常
21    RAISE_APPLICATION_ERROR(-20001,ErrorCode);
22  WHEN OTHERS THEN
23      RAISE_APPLICATION_ERROR(-20001,'未知异常');
24  END;

如果需要放回message 并中断程序继续进行,则可以使用:

RAISE_APPLICATION_ERROR(-20001,ErrorCode);

这样,就在Java端可以通过SQLException来捕获异常。

虽然通过SQLException.getMessage()可以捕获到异常的内容,但是这些内容对于开发比较有用。对于客户来说,并不友好,也没有多大意义。     通过SQLException.getErrorCode()可以捕获到自定义的异常错误编号。然后就可以,通过这个错误编号,自定义相应的Message内容,返回给客户了。

注意:oracle允许自定义的错误代码的范围为-20000 -- -20999

在使用过程中,遇到了下面的问题。
     ORA-21000: error number argument to raise_application_error of [xxxx] is out of range出现这个错误的原因是:在存储过程中定义的错误代码Number不在Oracle所允许的范围之内。
分享到:
评论

相关推荐

    Oracle存储过程中自定义异常

    ORACLE 用户自定义异常小例子  1.进入pl/sql测试窗口  2.执行语句  declare  empname varchar2(255);  customize_exp EXCEPTION; –自定义异常  begin  FOR c IN (select d.* from scott.dept d) ...

    Oracle用户自定义异常实现过程解析

    注意:普通的查询语句不会出现异常,只有使用into对变量进行赋值的时候才会发生异常 --系统变量: notfound -->...用户自定义异常写在:declare里,如: set serveroutput on declare no_result ex

    Oracle中异常处理

     能够检测并且进行错误处理的叫做异常,一般分为用户自定义异常,系统预定义异常。  预定义异常  一:除数是0的系统异常  declare  v_number Number(2):=10;  v_zero Number(2):=0;  v_result Number...

    Oracle课件.pdf

    4. Oracle用户和权限 4.1用户和权限 4.2角色 第2章 SQL数据操作和查询 1. SQL简介 2. 查询 2.1查询结构 2.2查询顺序 . 2.3聚合函数 . 3. 创建表和约束 3.1 Oracle常用数据类型 3.2创建表 3.3表的约束 4....

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

     4.5.4 自定义异常  4.5.5 使用sQLCODE和sQLERRIVI  4.5.6 使用RAISEAPPLICATIONERROR  4.6 过程与函数  4.6.1过程  4.6.2 函数  4.6.3 管理过程与函数  4.6.4 过程与函数的比较  4.7 程序包  ...

    oracle学习资料

    §5.1.3 用户自定义的异常处理 13 §5.1.4 用户定义的异常处理 13 §5.2 异常错误传播 13 §5.2.1 在执行部分引发异常错误 13 §5.2.2 在声明部分引发异常错误 13 §5.3 异常错误处理编程 13 §5.4 在 PL/SQL 中使用...

    Oracle 10g 开发与管理

    (三) 用户自定义异常 68 3.处理异常 68 Exception 68 (四)异常传播 68 1.自定义异常的传播 68 2.声明中的异常 68 (五)使用SQLCODE和SQLERRM 68 第八讲 过程、函数和程序包 72 8.1存储过程(procedure) 72 1.创建 72 2...

    plsql_oracle 编程

    §5.1.3 用户自定义的异常处理 13 §5.1.4 用户定义的异常处理 13 §5.2 异常错误传播 13 §5.2.1 在执行部分引发异常错误 13 §5.2.2 在声明部分引发异常错误 13 §5.3 异常错误处理编程 13 §5.4 在 PL/SQL 中使用...

    oracle数据库经典题目

    一、填空 1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)... Oracle数据库中角色分为系统预定义的角色和用户自定义的...

    plsql_oracle 8i 编程讲义

    §5.1.3 用户自定义的异常处理 13 §5.1.4 用户定义的异常处理 13 §5.2 异常错误传播 13 §5.2.1 在执行部分引发异常错误 13 §5.2.2 在声明部分引发异常错误 13 §5.3 异常错误处理编程 13 §5.4 在 PL/SQL 中使用...

    ORACLE之常用FAQ V1.0(整理)

    [Q]怎样自定义异常 4 [Q]十进制与十六进制的转换 4 [Q]怎么样抽取重复记录 5 [Q]怎么样设置自治事务 5 [Q]怎么样在过程中暂停指定时间 5 [Q]怎么样快速计算事务的时间与日志量 5 [Q]怎样创建临时表 6 [Q]怎么样在PL/...

    asp.NET权限管理系统(FrameWork) 1.0.7源码

    2)支持Access和MsSql200/2005及Oracle9i以上. 3)采用角色来进行权限的授权,每个用户可以属于多个角色,享有交差权限. 4)整合方便,权限检测采用httpmodule方式检测.基本不用对原有程序进行修改,便可将原有程序进行整合...

    .NET的极速开发框架

    (5)支持列表视图自定义,用户可定义多个视图(包括外侧树视图、树网格视图、分组视图),可定义关联模块视图,视图可自由切换 (6)支持视图字段自定义、搜索字段自定义、排序字段自定义、列表操作按钮自定义 ...

    ASP.NET权限管理系统

    2)支持Access和MsSql200/2005及Oracle9i以上. 3)采用角色来进行权限的授权,每个用户可以属于多个角色,享有交差权限. 4)整合方便,权限检测采用httpmodule方式检测.基本不用对原有程序进行修改,便可将原有程序进行整合...

    ASP.NET权限管理系统(FrameWork)

    2)支持Access和MsSql200/2005及Oracle9i以上. 3)采用角色来进行权限的授权,每个用户可以属于多个角色,享有交差权限. 4)整合方便,权限检测采用httpmodule方式检测.基本不用对原有程序进行修改,便可将原有程序进行整合...

    Rookey.Frame企业级极速开发框架.zip

    (5)支持列表视图自定义,用户可定义多个视图(包括外侧树视图、树网格视图、分组视图),可定义关联模块视图,视图可自由切换 (6)支持视图字段自定义、搜索字段自定义、排序字段自定义、列表操作按钮自定义 ...

    北大青鸟学士后第三单元OA办公自动化管理系统

    (3) com.chen.exception.DataAccessException.java 是一个自定义异常,用于用户登入时判断用户名及密码. (4)com.chen.web.interceptor.AuthorizationInterceptor.java 限制上传大小的拦截器 (5) src下的...

    PLSQL Developer 7.1.5

     集成调试器(要求Oracle 7.3.4或更高)——该调试器提供您所需要的全部特性:跳入(Step In)、跳过(Step Over)、跳出(Step Out)、异常时停止运行、断点、观察和设置变量、观察全部堆栈等。基本能够调试任何...

    pl/sql developer 9 + 注册机

     该调试器(要求Oracle 7.3.4或更高)提供您所需要的全部特性:跳入(Step In)、跳过(Step Over)、跳出(Step Out)、异常时停止运行、断点、观察和设置变量、观察全部堆栈等。基本能够调试任何程序单元(包括...

    PL/SQL Developer

     集成调试器(要求Oracle 7.3.4或更高)——该调试器提供您所需要的全部特性:跳入(Step In)、跳过(Step Over)、跳出(Step Out)、异常时停止运行、断点、观察和设置变量、观察全部堆栈等。基本能够调试任何...

Global site tag (gtag.js) - Google Analytics