是这样的我代码中没有用Log4j来做。而是用SQL:insert into error
这样的形式来做。现在我需要将异常信息写到数据库中去。
如果我用e.toString()
会打印出来异常信息。
而这样写数据库的话我的SQL语句通不过?
请问如何来事前处理好这个字符串呢?

解决方案 »

  1.   

    异常信息:com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.SocketException
    MESSAGE: java.net.ConnectException: Connection refused: connectSTACKTRACE:java.net.SocketException: java.net.ConnectException: Connection refused: connect
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2569)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at bean.WebMonitor.exADBs(WebMonitor.java:210)
    at bean.WebMonitor.main(WebMonitor.java:240)
    ** END NESTED EXCEPTION **
    想直接插入到数据库记录中去。如何实现呀?
      

  2.   

    apache commons-lang 里面有一个 ExceptionUtils 类,用它可以方便的得到异常的详细信息。最好不要写到数据库,而是写到文件里面。因为万一数据库都连不上,你这个异常信息怎么办?
      

  3.   

    package com.quickwcm.utils;import java.io.PrintWriter;
    import java.io.StringWriter;
    import java.io.Writer;public class ExceptionUtils {
      
      public static String renderException(Throwable t) {
        final Writer result = new StringWriter();
        final PrintWriter printWriter = new PrintWriter(result);
        t.printStackTrace(printWriter);
        return result.toString();
      }
    }测试过了。非常不错的一个方法呀。哈哈