Col*_*lin 5 java swing exception-handling
如何从java swing向log4j日志发送异常?
我们已经完成了许多代码并且它做了很多:
mytable.getSelectionModel().addListSelectionListener(
new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
... no try catch
}
});
Run Code Online (Sandbox Code Playgroud)
没有尝试/捕获.应用程序向控制台发送npe异常.我们在log4j中需要它.但是不想改变所有这些代码(像这样的100行).我们能做什么?
您可以设置一个未捕获的异常处理程序,该处理程序将记录您的应用程序抛出的任何内容.
在Swing应用程序的主要方法中添加以下行:
Thread.setDefaultUncaughtExceptionHandler(new LoggingExceptionHandler());
System.setProperty("sun.awt.exception.handler", LoggingExceptionHandler.class.getName());
Run Code Online (Sandbox Code Playgroud)
然后像这样实现异常处理程序:
package com.initech.tps;
import java.lang.Thread.UncaughtExceptionHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LoggingExceptionHandler implements UncaughtExceptionHandler
{
private static final Logger logger = LoggerFactory.getLogger(LoggingExceptionHandler.class);
@Override
public void uncaughtException(Thread t, Throwable e)
{
logger.error("caught exception in thread: " + t.getName(), e);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1360 次 |
| 最近记录: |