报告来自JavaFX应用程序或任何Java应用程序的错误

报告来自JavaFX应用程序或任何Java应用程序的错误,java,javafx,exception-handling,Java,Javafx,Exception Handling,我知道这个问题有点超出了堆栈溢出的范围,但我没有找到任何东西,我想知道我是否在搜索错误的东西 我开发了一个JavaFX应用程序,并试图跟踪它何时崩溃或出现意外异常。我知道有无数的服务和库可以为web应用程序实现这一点,我甚至知道有一两个是为.Net应用程序实现的,但我没有找到一个有前途的JavaFX解决方案 我确实发现: 当前位置似乎是,而且需要,如果可以避免,我宁愿不这样做 Crashlytics:它只适用于Android,不适用于JavaFX 世界上有很多错误跟踪器,如Sentry、Ro

我知道这个问题有点超出了堆栈溢出的范围,但我没有找到任何东西,我想知道我是否在搜索错误的东西

我开发了一个JavaFX应用程序,并试图跟踪它何时崩溃或出现意外异常。我知道有无数的服务和库可以为web应用程序实现这一点,我甚至知道有一两个是为.Net应用程序实现的,但我没有找到一个有前途的JavaFX解决方案

我确实发现:

  • 当前位置似乎是,而且需要,如果可以避免,我宁愿不这样做
  • Crashlytics:它只适用于Android,不适用于JavaFX
世界上有很多错误跟踪器,如Sentry、Rollbar等,但它们似乎都是为不同于客户端应用程序的服务器应用程序设计的

例如,在服务器应用程序中,很容易将每个请求包装在一个将报告异常的catch-all处理程序中。客户端应用程序生成线程,每个线程都需要自己的处理程序。整个应用程序可能会崩溃(实际上,如果出现问题,完全崩溃是正确的做法,而不是让应用程序处于错误状态)。此时会出现一个弹出窗口,询问一些反馈并将报告发送到服务器


在.Net中手动执行此操作的示例:

当您说崩溃时,您指的是系统故障或由于某些未处理的异常而导致的应用程序故障?如果您的代码非常安全,这意味着您正在处理每个异常(运行时),那么您只需要一个日志机制来通知/保存包含实际错误和时间的日志。如果我没有正确理解您的意思,请告诉我。@JKostikiadis:崩溃和/或异常,毕竟,Java中的崩溃只是未经处理的异常(我不太担心JVM本身崩溃)。无论是我捕获所有异常并记录它们,还是让冒泡出现并让某种包装器记录它们,这两种方法都是可行的(实际上我可能会混合使用这两种方案);您只需要一个与Java兼容的SDK。你看了吗?@beatngu13:不,我不必局限于JavaFX;但是JavaFX意味着一个桌面应用程序,Sentry是为服务器设计的。正确地对客户端应用程序执行异常跟踪意味着包装每个线程甚至应用程序本身,然后将异常保存到磁盘,并在下次应用程序运行时(因为它崩溃)报告错误。我要找的是雷根WPF或Winforms的等价物。Sentry不仅适用于服务器,他们甚至还为Android应用程序提供SDK。看看他们的照片。