我可以在 JVM 选项中控制异常吗?
Can I control Exception in JVM options?
我无法通过任何方式直接修改Java代码。
但是,我有一个稳定的例外,我想对其应用 try
- catch
。
使用 jvm 选项可能吗?
简短的回答是:没有。不可能的。
如果你想捕获异常你需要修改代码来实现。
如果该选项不可用,请联系向您供应/销售产品的人员并与他们讨论可能的解决方法:
- 您可能没有正确使用产品。
- 他们可能会承认这是一个错误,并为您提供修复。
如果这不起作用,并且您真的很绝望,则可以对代码进行逆向工程并修改它以处理异常。但是,这种方法存在各种风险。但请记住,您 正在 修改代码。
我能想到这样的选项不存在/没有实现的几个原因。
这样的修改(为不需要的异常注入 catch
)改变了应用程序的行为。那是不安全/危险的,降低它的危险性可能很困难。
技术上正确的解决方案很可能是更改程序或您使用它的方式。
如果 Oracle 实施这样的功能,将存在潜在的业务风险。
虽然 Stephen C 的答案是您应该走的第一条路,但您始终可以修改 代码(除非法律禁止您这样做)
你可以
- 反编译class,编辑并再次编译。
- 使用 Instrumentation 即时修改 class。
这些解决方案都不简单,更好的方法是首先解决异常的原因。
我不是很清楚你的确切问题,所以我的建议可能不适用于你的情况,但你可以设置一个 uncaught exception handler 吗?
来自 Javadocs:
Set the default handler invoked when a thread abruptly terminates due to an uncaught exception, and no other handler has been defined for that thread.
我无法通过任何方式直接修改Java代码。
但是,我有一个稳定的例外,我想对其应用 try
- catch
。
使用 jvm 选项可能吗?
简短的回答是:没有。不可能的。
如果你想捕获异常你需要修改代码来实现。
如果该选项不可用,请联系向您供应/销售产品的人员并与他们讨论可能的解决方法:
- 您可能没有正确使用产品。
- 他们可能会承认这是一个错误,并为您提供修复。
如果这不起作用,并且您真的很绝望,则可以对代码进行逆向工程并修改它以处理异常。但是,这种方法存在各种风险。但请记住,您 正在 修改代码。
我能想到这样的选项不存在/没有实现的几个原因。
这样的修改(为不需要的异常注入
catch
)改变了应用程序的行为。那是不安全/危险的,降低它的危险性可能很困难。技术上正确的解决方案很可能是更改程序或您使用它的方式。
如果 Oracle 实施这样的功能,将存在潜在的业务风险。
虽然 Stephen C 的答案是您应该走的第一条路,但您始终可以修改 代码(除非法律禁止您这样做)
你可以
- 反编译class,编辑并再次编译。
- 使用 Instrumentation 即时修改 class。
这些解决方案都不简单,更好的方法是首先解决异常的原因。
我不是很清楚你的确切问题,所以我的建议可能不适用于你的情况,但你可以设置一个 uncaught exception handler 吗?
来自 Javadocs:
Set the default handler invoked when a thread abruptly terminates due to an uncaught exception, and no other handler has been defined for that thread.