【发布时间】:2018-01-12 06:36:32
【问题描述】:
@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 块中创建/抛出空的 ArithmeticException。 什么 java 方法调用/代码可以抛出 java.lang.ArithmeticException 而没有堆栈跟踪且没有错误消息?
之前有没有人在 java 中看到 ArithmeticException 而没有任何消息? 日志输出:
null java.lang.ArithmeticException
【问题讨论】:
-
您使用的是哪个日志框架?您需要将异常记录为作为异常,以便框架记录堆栈跟踪。此外,您省略了所有可能包含算术问题的代码。所以我们不能帮助你。记录完整的异常,然后edit 你的帖子包含堆栈跟踪和导致异常的代码。
-
没有打印堆栈跟踪并且 e.getMessage 为空.. 这是 log4j 框架。我看到带有堆栈跟踪的其他异常。我的问题:有没有人在 java 中看到 ArithmeticException 之前没有消息?
-
没有打印堆栈跟踪,因为在您的
catch (Exception e)块中您没有打印它,您只记录一个带有异常消息的错误而不是堆栈跟踪。这就是为什么我询问您正在使用哪个 looger 框架来查找用于记录包含堆栈跟踪的异常的 API。 -
我正在调查一个没有堆栈跟踪的
java.lang.ArithmeticException: null@suresh 你有没有想过这个问题?