起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6114|回复: 4

截获数据库异常

  [复制链接]

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2013-11-21 16:51:04 | 显示全部楼层 |阅读模式
在界面上保存数据时,由于不满足数据库的约束,数据库会抛出异常,x5会在界面上提示执行sql出错,在控制台里面打印出全部错误信息,包括数据库抛出的异常,下面介绍一下截获数据库异常,重新抛出异常的方法

保存数据的saveAction不能使用平台提供的bizSaveProcedure,而是需要自己写一个新的procedure,这个新的procedure可以作为saveAction使用的公共procedure。
QQ截图20131121153554.png

这个新的procedure对应的java代码如下,可以在里面再添加其它的数据库异常
  1. public static int saveER_WPXX(List insertRange,List deleteRange,List updateRange,String concept,String dataModel,String fnModel,String readOnly,String notNull,Table table){
  2.     try {
  3.         return BizData.save(table, concept, insertRange, deleteRange, updateRange, readOnly, notNull, dataModel, fnModel);
  4.     } catch (BusinessException e) {
  5.         e.printStackTrace();
  6.         if(e.getCause().getCause()!=null){
  7.             if(e.getCause().getCause().getMessage().contains("Duplicate")){
  8.                 throw new RuntimeException ("物品编码重复  "+e.getCause().getCause().getMessage());                        
  9.             }else if(e.getCause().getCause().getMessage().contains("Data truncation")){
  10.                 throw new RuntimeException ("输入数据过长  "+e.getCause().getCause().getMessage());                        
  11.             }else{
  12.                 throw e;                        
  13.             }
  14.         }else
  15.             throw e;                        
  16.     }
  17. }
复制代码

1

主题

113

帖子

209

积分

内部用户

积分
209
QQ
发表于 2014-3-19 16:27:13 | 显示全部楼层
good
匿名  发表于 2015-1-12 22:11:36
mark
回复

使用道具

17

主题

77

帖子

160

积分

初级会员

Rank: 2

积分
160
QQ
发表于 2015-1-12 22:12:23 | 显示全部楼层
太实用了,正需要
匿名  发表于 2015-6-12 11:59:33
这个文件创建后放哪,我的选不到自己创建的那个procedure文件,我是和系统的放在同一级目录
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-25 09:10 , Processed in 0.056548 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表