近期开发公司的平台项目,由于前期的数据库基础扎根比较深,很多功能操作都是在存储过程,触发器中进行控制。这些东西最恶心的地方就是返回的异常会出现超级大长串。需要在后台捕获异常进行判断,最终返回到前端。为了偷个懒,写了个简化异常的方法,去掉了后台的判断。直接可返回到前台。也给大家分享一下。
public String resultException(Exception e){ //传进来的是oralce抛出的异常 String error = e.getMessage() == null ? e.toString() : e.getMessage(); //获取异常的主体信息。 if(e instanceof java.sql.SQLException || e.getCause() instanceof java.sql.SQLException){ String split = String.valueOf((char)3);//定义一个特殊字符,避免于消息中的其他字符冲突 error = error.replaceFirst("java.sql.SQLException: (ORA[-][0-9]+:\\s*)+", split);oracle账号 //关键代码 int p = error.indexOf(split); if(p >= 0){ error = error.substring(p+1).trim(); int p2 = error.indexOf("ORA-"); if(p2>=0){ error = error.substring(0, p2).trim(); } } } error = (error.length() > 200 ? error.substring(0,200)+"..." : error); return error;}