收集大型应用程序中所有未捕获的异常

时间:2014-04-25 11:47:37

标签: java swing

我有一个服务器客户端应用程序,它有几个用户。我的客户端是一个很大的应用程序,里面有很多异常处理。我想收集并转移所有未处理的未捕获的异常。例如,当客户端抛出未捕获的异常(如NullPointer或ArrayIndexOutOfBounds异常)时,我想将消息传输到服务器并将其写入文件。有可能吗?

3 个答案:

答案 0 :(得分:1)

  

有关记录的任何建议吗?

herehere所示,您可以添加默认的未捕获异常处理程序。如图here所示,您可以在对话框中显示堆栈跟踪。

答案 1 :(得分:0)

如果要打印整个堆栈跟踪,请使用printStackTrace:

FileWriter fw = new FileWriter("exception.txt", true);
PrintWriter pw = new PrintWriter(fw);
e.printStackTrace (pw);

答案 2 :(得分:0)

是的,有可能但不可取。由于Swing适用于单线程模型,所有事件都由 EDT 处理,因此对于可能的解决方案,您需要在调度这些事件的位置捕获这些异常。

EventQueue是跟踪所有事件的地方,因此您可以在应用程序(不是一个好的想法)中覆盖它并捕获那里的所有异常并从那里发送到服务器单独的线程。

此外,您还需要捕获应用程序正在创建的所有线程中的异常(除了swing线程)。

  

更合适的解决方案是仅在客户端记录它们   稍后可以扫描这些日志文件以检查异常。

希望这有帮助。

相关问题