gpt4 book ai didi

java.lang.ArithmeticException 在没有堆栈跟踪和消息的情况下抛出

转载 作者:行者123 更新时间:2023-12-02 11:45:38 25 4
gpt4 key购买 nike

@Override
public StreamObserver<MdtDialoutArgs> mdtDialout(StreamObserver<MdtDialoutArgs> responseObserver) {

return new StreamObserver<MdtDialoutArgs>() {

@Override
public void onError(Throwable t) {
logger.warn( "Encountered error in mdtDialout");
}

@Override
public void onCompleted() {
responseObserver.onCompleted();
}

@Override
public void onNext(MdtDialoutArgs arg0) {
try {
....
....
...
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
}

上面的代码抛出一个 java.lang.ArithmeticException ,没有堆栈跟踪,也没有消息。我没有在 try block 中创建/抛出空的 ArithmeticException 。哪些 java 方法调用/代码可以抛出 java.lang.ArithmeticException 且没有堆栈跟踪且没有错误消息?

有没有人见过 java 中的 ArithmeticException 且没有任何消息?日志输出:

null java.lang.ArithmeticException

最佳答案

对于一些频繁抛出的异常,JVM会进行优化以隐藏堆栈跟踪。当服务器重新启动时,该异常的堆栈跟踪将再次显示。

优化版本

java.lang.ArithmeticException: null

重启后

java.lang.ArithmeticException: / by zero atjava.math.BigDecimal.divideAndRound(BigDecimal.java:4106) atjava.math.BigDecimal.divide(BigDecimal.java:5153)

您可以添加虚拟机选项-XX:-OmitStackTraceInFastThrow来关闭此优化。

关于java.lang.ArithmeticException 在没有堆栈跟踪和消息的情况下抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48220811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com