我有一个Java应用程序,试图在表中插入一行,并且com.​ibatis.​common.​jdbc.​exception.NestedSQLException与Cause com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException一起抛出
当我尝试为唯一键约束插入重复数据时。

如何捕获该异常?

最佳答案

要找到根本原因,您可以执行以下操作:

try {
    //insert
} catch (NestedSQLException e) {
    Throwable t = e;
    while(t.getCause() != null) {
        t = t.getCause();
    }
    //in your situation, now t should be MySQLIntegrityConstraintViolationException
    if (t instanceOf MySQLIntegrityConstraintViolationException) {
        //do something
    }
}

10-05 23:24