如何将数据库中事务回滚后的异常,转成自定义的异常抛出啊

有谁知道,在事务中有异常后,回滚成功后,如何捕获数据库异常,并转化成自己定义的异常抛出啊

try

{

buildRelatedDbInfo(****);

}

catch(Exception ex)

{

throw new TErrorException(****);

}


评论区

杜福忠

2018-09-26 21:23


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());
}

杜福忠

2018-09-26 21:40

方法2:
@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;
}

热门分享

扫码入社