有谁知道,在事务中有异常后,回滚成功后,如何捕获数据库异常,并转化成自己定义的异常抛出啊
try
{
buildRelatedDbInfo(****);
}
catch(Exception ex)
throw new TErrorException(****);
abstract class MyIAtom implements IAtom { public Exception myException = null; }; MyIAtom myIAtom = new MyIAtom() { @Override public boolean run() throws SQLException { try { // 你的数据库 操作 return true; } catch (Exception e) { myException = e; return false; } } }; boolean tx = Db.tx(myIAtom); if ( ! tx) { // 这里就可以拿到异常了,自己转换一下 myIAtom.myException System.out.println(myIAtom.myException.getMessage()); }
@SuppressWarnings("serial")public class MyException extends Exception { public void init(Exception e) { try { // 此处 拿到异常, 存为属性 或者自定义其他 操作, 都可以, 看业务 } catch (Exception ie) { } }};使用:final MyException myE = new MyException();boolean tx = Db.tx(new IAtom() { @Override public boolean run() throws SQLException { try { // 你的数据库 操作 return true; } catch (Exception e) { myE.init(e); return false; } }});if (!tx) { // 这里就可以拿到自己的异常了 throw myE;}