想要记录任何异常,而是在UI中显示为意外异常

时间:2012-12-20 05:57:49

标签: java swing exception logging

我正在使用此代码:

Logger.getLogger( SampleAction.class.getName() ).log( Level.SEVERE, null, ex );

用于记录Logger中的异常。

除了记录异常外,它还在UI中显示异常。

如何避免显示此异常?

2 个答案:

答案 0 :(得分:0)

如何创建这样的另一个类。

public class Log{
    FileConnection fc;
    OutputStream outStream;
    InputStream inStream;

      Log(String exceptionClass, String errorMessage){
           try{
              fc = (FileConnection)Connector.open("[path]");
              if(!fc.exists())            fc.create();

              inStream = fc.openInputStream();
              outStream = fc.openOutputStream();

               if(inStream!=null)             
                       outStream.write(IOUtilities.streamToBytes(instream)); //use this so overwriting is enabled

               outStream.write((exceptionClass+"\n").getBytes());
               outStream.write((errorMessage+"\n").getBytes()); 
           }
           catch(IOException e){}
           finally{
                  try{
                       inStream.close();
                       outStream.close();
                       fc.close();
                   }catch(Exception e){}
            }
      }

}

然后只需在try块的每个catch中调用Log类:

e.g。

try{
      //your process
}catch(Exception e){
       //call log
       new Log(e.getClassName(), e.getMessage());
}

你可以修改它,如果你为每个日志写日期和时间会更好。

答案 1 :(得分:0)

发生了两件事:

  1. 记录器正在记录异常
  2. 异常没有被捕获或被传播,直到另一段代码在对话框中显示它。如果您不想显示对话框,则需要在显示之前处理异常。
  3. 请粘贴包含日志记录的整个方法。