sur*_*esh 3 java exception grpc-java
@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);
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码抛出一个 java.lang.ArithmeticException ,没有堆栈跟踪,也没有消息。我没有在 try 块中创建/抛出空的 ArithmeticException 。什么java方法调用/代码可以抛出java.lang.ArithmeticException,没有堆栈跟踪,也没有错误消息?
有没有人见过java中没有消息的ArithmeticException?日志输出:
null java.lang.ArithmeticException
小智 5
对于一些频繁抛出的异常,JVM会进行优化以隐藏堆栈跟踪。当服务器重新启动时,该异常的堆栈跟踪将再次显示。
优化版本
java.lang.ArithmeticException: null
重启后
java.lang.ArithmeticException:/在java.math.BigDecimal.divideAndRound(BigDecimal.java:4106)处按零在java.math.BigDecimal.divide(BigDecimal.java:5153)处
您可以添加 VM 选项-XX:-OmitStackTraceInFastThrow来关闭此优化。
| 归档时间: |
|
| 查看次数: |
2927 次 |
| 最近记录: |