最近在项目中碰到了这么一个需求,一个JavaWeb项目,数据库用的是Oracle。业务上有一个对一张表的操作功能,当时设置了两个字段联合的唯一约束。由于前断没有对重复字段的校验,需要在插入时如果碰到唯一约束重复的时候在报文中抛出异常信息的描述,这是就需要获取详细的Oracle错误并添加错误描述信息。众所周知,oracle的错误码返回都是以ORA-xxxxx开头的,所以获取方式如下所示:
- 从抛出的异常中拿除去ORA-打头的错误码
//获取Oracle的错误码.
// @return 错误码 如00001是主键冲突
public static String getOraCode(Exception e) {
if (e == null) {
return "";
}
String tmp = e.getMessage();
int index = tmp.toUpperCase().indexOf("ORA-");
if (index != -1) {
return tmp.substring(index + 4, index + 9);
}
return "";
}
- 对错误码进行判断
public void addAccFlow(Map<String,Object> map) throws Exception {
try {
generalAccountingParanService.add(map);
} catch (Exception e) {
String flag = getOraCode(e);
//主键冲突
if (flag.equals("00001")) {
throw new BusinessException(MsgConstant_26001);
}
throw ex;
}
}
JavaWeb项目中获取对Oracle操作时抛出的异常错误码的更多相关文章
-
javaweb项目中获取项目名称
request.getServletContext().getContextPath() 增加项目名称是test.那么上面的结果就是/test
-
Elicpse新建userLibrary导入jar包时抛出NotFoundException异常
最近刚开始学Struts2.0框架.再导入jar包的时候突然心血来潮.为方便区分jar包的功能,于是想在WEB-INF -> lib 目录下想新建一个struts文件夹,以方便分类查看. 像上图 ...
-
执行Socket socket = new Socket(ip, port);时抛出个异常:android.os.NetworkOnMainThreadException解决办法
首先,确认你的android版本是4.0之后再用此方法解决,因为在4.0之后在主线程里面执行Http请求才会报这个错,也许是怕Http请求时间太长造成程序假死的情况吧.Android在4.0之前的版本 ...
-
C#解决关闭多线程的form主窗体时抛出ObjectDisposedException 异常
一.现象: 我在主窗体新建线程,使用子线程来处理接收到的数据,并且更新窗体显示内容,但关闭主窗体程序之后就程序就报错,如下所示: 二.分析问题: 由于新建线程的处理函数里边是一直死循环处理数据,虽然窗 ...
-
ssh项目问题01,为创建数据库抛出的异常
框架什么都搭建好了,但是一直抛出如图问题,网上资料很多让你设置时间之类的,也设置了还是继续抛异常,最后带我的师傅说没有创建数据库,我都要郁闷死了,网上那么多,很多写的都不能解决问题,还乱写,浪费别人时 ...
-
当WebView运行在特权进程时抛出安全异常,Hook方式解决方案(包含对Android 8.0的处理)
1.问题起源报错语句是:java.lang.UnsupportedOperationException: For security reasons, WebView is not allowed in ...
-
JMS之——ActiveMQ时抛出的错误Could not connect to broker URL-使用线程池解决高并发连接
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/69046395 解决使用activemq时抛出的异常:javax.j ms.JMSE ...
-
JavaWeb 项目中的绝对路径和相对路径以及问题的解决方式
近期在做JavaWeb项目,总是出现各种的路径错误,并且发现不同情况下 / 所代表的含义不同,导致在调试路径上浪费了大量时间. 在JavaWeb项目中尽量使用绝对路径 由于使用绝对路径是绝对不会出 ...
-
javaweb项目中遇到的一些乱码问题
在做javaweb项目时,我们经常会遇到一些乱码问题: 首先,确定一点思想:要想不乱码,你要保证编码一致就行了,即统一编码~ 其一,jsp等页面中的中文显示乱码(这里不只是说jsp文件,其它文件也有这 ...
随机推荐
-
EF高级应用
UpdateSourceTrigger NumberTextbox 参考 Finally! Entity Framework working in fully disconne ...
-
Linux 命令——grep | 正则表达式
感觉讲的很详细,瞬间懂了grep,正则. from: here 简介 grep (global search regular expression(RE) and print out the line ...
-
dba诊断之lock
--产生锁的详细信息 select a.session_id, c.SERIAL#,d.spid, os_user_name, b.object_name,locked_mode, c.sql_ ...
-
javascript高级知识分析——函数访问
代码信息来自于http://ejohn.org/apps/learn/. 可以通过函数的名字在它的内部引用它. function yell(n){ return n > 0 ? yell(n-1 ...
-
JavaScript之作用域与闭包总结
博主最开始接触程序是C语言,C++,后来是java,现在是php,无论哪一种语言与javascript在机制上都还是有比较大的区别. 下面总结一下用面向对象的思想写javascript需要区分的要点: ...
-
在windows环境利用celery实现简单的任务队列
测试使用环境: 1.Python==3.6.1 2.MongoDB==3.6.2 3.celery==4.1.1 4.eventlet==0.23.0 Celery分为3个部分 (1)worker部分 ...
-
2、使用rpm包安装grafana
Grafana最新版本4.3.1安装从官网下载相关的rpm包 http://docs.grafana.org/installation/rpm/ 1.下载二进制包,安装 [root@localhost ...
-
idea搜索jar中的类
ctrl+n快捷键
-
[dart学习]第二篇:dart变量介绍 (一)
前言 本文的所有内容均是官方文档的简单翻译和理解,需要查看原文,请登录 https://www.dartlang.org/guides/language/language-tour 阅读, 让我们 ...
-
wordpress搭建自己的博客~
去官方网站下载wordpress,并解压缩.下载链接:https://cn.wordpress.org/ wordpress是一款开源的PHP框架,搭建个人博客网站最实用的选择之一,甚至你都不需要懂P ...