这可能是一个非常幼稚的问题。
我曾经相信Throwable
Java 中的a 总是 包含堆栈跟踪。这是正确的吗?
现在看起来我捕获了 没有 堆栈跟踪的异常。是否有意义?是否 可以 在没有堆栈跟踪的情况下捕获异常?
无需堆栈跟踪就可以捕获Java中的Throwable对象:
Throwable(String message, Throwable cause, boolean enableSuppression,boolean writableStackTrace)
构造一个具有指定详细消息,原因,启用或禁用原因,启用或禁用 可写堆栈跟踪 的新throwable 。
public Throwable fillInStackTrace()
填写执行堆栈跟踪。此方法在Throwable对象中记录有关当前线程的堆栈帧的当前状态的信息。
如果此Throwable的堆栈跟踪不可写,则调用此方法无效 。
http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html
现在看来,我在没有堆栈跟踪的情况下捕获异常。有道理吗?是否有可能在没有堆栈跟踪的情况下捕获异常?
Edit2 @Paradematic在建议重定向而不是抛出异常方面做得很好;这解决了日志记录问题。Play 2中的问题是,重定向需要发生在所谓的范围内,而日期解析器调用并不总是这样。 最初的 有一个问题,即我的application.log被与uri日期解析器操作相关的错误填满,如果给定有效的uri日期,该操作应该成功。 然而,一些用户试图通过输入无效日期来规避这一点,希望获得免费访问付费订阅者专
我试过大多数设置日志记录/应用程序洞察遥测的组合,下面是我试过的一些东西: 的 方法中的 将添加到中的日志生成器 删除自定义错误页异常处理程序,以防发生影响事件 我在Azure中的Web应用程序上设置了环境变量。 我正在使用以下代码生成应用程序洞察中的异常: 一切都不起作用了,我快疯了!非常感谢任何帮助。
在我们的日志文件中,我们发现以下内容: 只有这一行,没有异常堆栈跟踪。 出现此异常的try块正在执行使用javassist创建的动态生成的Java字节码。 我想知道两件事: : null 丢失的堆栈跟踪,尽管在块内使用调用日志挂钩,这通常会导致完整的堆栈跟踪被打印在日志文件中。 我的问题: > 什么样的代码会导致日志输出“java.lang.ArrayIndexOutOfBoundsExcepti
问题内容: 如何将异常的堆栈跟踪信息打印到stderr以外的流上?我发现的一种方法是使用getStackTrace()并将整个列表打印到流中。 问题答案: 可以接受or或参数: 也就是说,请考虑将SLF4J之类的记录器接口与LOGBack或log4j之类的记录实现一起使用。
异常对象的 printStackTrace() 方法用于打印异常的跟踪栈信息,根据 printStackTrace() 方法的输出结果,开发者可以找到异常的源头,并跟踪到异常一路触发的过程。 看下面用于测试 printStackTrace 的例子程序。 上面程序中 main 方法调用 firstMethod,firstMethod 调用 secondMethod,secondMethod 调用 t