显示异常类型及其原因不是发生异常时的整个堆栈跟踪而是显示在日志文件中

时间:2012-11-26 06:40:31

标签: java exception logging error-handling struts2

我有一个问题,我不希望在发生异常时显示完整的堆栈跟踪,但只有异常类型。假设

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'null' for key 3
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.Util.getInstance(Util.java:381)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)

这里我只想将例外类型和异常原因写入我的日志文件,如

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'null' for key 3

那么如何实现这一点,我使用的是java,struts2和hibernate3。 注意:请不要记录框架建议,谢谢

1 个答案:

答案 0 :(得分:1)

使用ex.getMessage()返回异常的详细消息字符串。

Throwable类是Java语言中所有错误和异常的超类。所以,你会在这里找到有关Javadoc的更多细节。

http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html

相关问题