oracle 自定义异常处理
--第一种方式:使用raise_application_error抛出自定义异常
declare
i number:=-1;
begin
if i=-1 then
raise_application_error(-20000,'参数值不能为负'); --抛出自定义异常
end if;
exception
when others then
dbms_output.put_line('err_code:'||sqlcode||';err_msg:'||sqlerrm); --进行异常处理
raise; --继续抛出该异常
end;
--第二种方式,使用 exception 进行异常的定义
declare
i number:=-1;
my_err exception; --自定义异常
PRAGMA EXCEPTION_INIT(my_err, -01476); --初始化异常(我理解就是将该异常绑定到某个错误代码上)
begin
if i=-1 then
raise my_err; --抛出自定义异常
end if;
exception
when my_err then --捕捉自定义异常
dbms_output.put_line('err_code:'||sqlcode||';err_msg:'||sqlerrm); --异常处理
raise; --继续抛出这个自定义异常
when others then --捕捉其它异常
dbms_output.put_line('err_code:'||sqlcode||';err_msg:'||sqlerrm); --异常处理
raise; --继续抛出异常
end;
第一种方式自定义异常的代码范围为:-20000到-20300
第二种方式的好处是,可以将自定义异常绑定到某上具体的预定义错误代码上,
如ORA-01476: divisor is equal to zero
这样我们就可以捕捉自定义异常而不需要用 others 进行捕捉了.但也不是所有的预定义异常都可以绑定,这个需要使用的时候自己多试试
oracle 自定义异常处理的更多相关文章
- Oracle 存储过程异常处理
Oracle 存储过程异常处理 1.异常的优点 如果没有异常,在程序中,应当检查每个命令的成功还是失败,如 BEGIN SELECT ... -- check for ’no data f ...
- oracle 自定义 聚合函数
Oracle自定义聚合函数实现字符串连接的聚合 create or replace type string_sum_obj as object ( --聚合函数的实质就是一个对象 sum ...
- Oracle自定义数据类型 1
原文 oracle 自定义类型 type / create type 一 Oracle中的类型 类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nva ...
- mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破
这一节课,沈老师带我们了解事务的异常 什么是异常? 我们先插入一组数据: ,10.5); 这个是正常的.但是我们把插入的user_money的值故意弄错:如下 ,‘abc’); 那么我们会得到一个ER ...
- Mybatis下配置调用Oracle自定义函数返回的游标结果集
在ibatis和Mybatis对存储过程和函数函数的调用的配置Xml是不一样的,以下是针对Mybatis 3.2的环境进行操作的. 第一步配置Mapper的xml内容 <mapper names ...
- ASP.NET MVC自定义异常处理
1.自定义异常处理过滤器类文件 新建MyExceptionAttribute.cs异常处理类文件
- 【SpringBoot】单元测试进阶实战、自定义异常处理、t部署war项目到tomcat9和启动原理讲解
========================4.Springboot2.0单元测试进阶实战和自定义异常处理 ============================== 1.@SpringBoot ...
- ASP.NET AJAX入门系列(8):自定义异常处理
在UpdatePanel控件异步更新时,如果有错误发生,默认情况下会弹出一个Alert对话框显示出错误信息,这对用户来说是不友好的,本文看一下如何在服务端和客户端脚本中自定义异常处理,翻译自官方文档. ...
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
WebAPI调用笔记 前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...
随机推荐
- Tomcat中负载的Session解决办法
Tomcat进行请求的Session解决方式总体来说有三种, (1)使用Nginx或者Apache反向代理工具进行用户请求的分机器,在Tomcat的Engine中的标签中加入jvmRoute属性,指定 ...
- archlinux安装图形界面
安装xorg 检查显卡驱动 $ lspci | grep VGA install X server wiki Then use the $ startx to start the X server, ...
- oc小总结
oc的一些总结 下面几个问题是oc中需要掌握的内容 1.如何掌握一个方法的方法名 2.一个对象调用一个autorelease,什么时候释放 3.字典和数组,集合都有什么特点 4.如何定义一个类 5.类 ...
- ZOJ 3805--解题报告
题目相关: 3805相关链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5337 在二维的矩形上, 机器通过管道(pipe ...
- 114. Flatten Binary Tree to Linked List
Given a binary tree, flatten it to a linked list in-place. For example,Given 1 / \ 2 5 / \ \ 3 4 6 T ...
- C#术语
数字代码.文本代码.机器码.托管代码.中间语言(IL).即时编译(JIT).COM(+).应用程序域.地址控件.虚拟内存
- leetcode 152. Maximum Product Subarray --------- java
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- leetcode 119 Pascal's Triangle II ----- java
Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3, ...
- spark-scheduled调度算法
1.3源码是如此,后面新版本源码会尽可能的根据用户shell配置的参数进行分配 1.spareadOutApps 尽可能分配到多的机器上面execute和CPU core 2.非spareadouta ...
- php MySQL数据库操作类源代码
php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...