Stackoverflow Exception仅在没有Visual Studio的情况下才会出现

时间:2014-09-22 11:42:17

标签: multithreading stack-overflow

美好的一天。我有一个很棒的WPF选择,与PTL,许多第三方库和网络合作。在开发人员工作站中它的工作正常(在发布模式下),但是当我在客户端工作站中运行它时 - 我在相同的输入数据中得到了stackoverflow异常。 app也在不同的地方撞毁了alswys。

所以,我的问题是: 1.我知道,通过try-catch-finaly捕获stackoverflow异常是不可能的。但可能存在任何解决方法,以了解哪个模块生成此问题? 2.如果所有第三方库都是平等的,客户端和开发人员环境之间有什么不同?

1 个答案:

答案 0 :(得分:0)

<块引用>

我知道,使用 try-catch-finally 不可能捕获 StackOverflowError 异常。

这并非不可能。只是非常不可取,它可能无法解决问题。 (处理程序可以做的最好的事情是放弃导致问题的原因并尝试继续。但是如果应用程序需要正在计算的结果怎么办?或者如果应用程序尝试相同的计算怎么办又来了?)

<块引用>

但是可能存在任何解决方法来了解哪个模块会产生此问题?

在不知道问题的真正原因的情况下,没有好的解决方法。

您如何找到问题的真正原因?调试应用程序!


<块引用>

如果所有第三方库都相同,客户端和开发者环境之间有什么区别?

一般来说,它可以是以下任何一种:

  • 不同的 Java 版本
  • 不同的操作系统版本
  • 容器和/或虚拟化
  • 不同的网络环境
  • 安装了不同的外部工具
  • 不同的文件系统布局
  • 不同的用户或文件权限
  • 不同的 Java 应用程序配置
  • 不同的输入数据/数据库。

此外可能还有一些。简而言之,可能很多不同的东西可能导致不同的行为。您可能认为其中一些不相关,但也可能是错误的。

IMO,寻找差异是错误的方法。更好的做法是在客户端环境中调试您的应用程序。阅读堆栈跟踪、阅读代码、将调试器附加到 JVM 并设置断点等,以尝试找出实际发生的情况。