为什么不打印堆栈跟踪?

时间:2014-04-02 16:43:46

标签: java google-app-engine exception stack-trace

尝试在浏览器窗口中打印stack trace时,我失败了。以下是异常块的示例。

try {
    // Add Code Here
} catch(Exception exc) { exc.printStackTrace();}

我使用google app engine作为我的服务器。堆栈跟踪不打印的原因是什么?

3 个答案:

答案 0 :(得分:0)

因为没有Exception要抓住:

try {
    // Add Code Here
}

您只会在Exception块中打印try的堆栈跟踪,如下所示:

try {
    throw new RuntimeException();
}

答案 1 :(得分:0)

有问题的方法是这样实现的:

public void printStackTrace() {
    printStackTrace(System.err);
}

如果您的容器/ IDE /框架重定向流,那么您将不会在预期位置观察它,另请参阅System.setErr(...);。当然,我希望您检查过您的代码是否真的抛出Exception(如果是Error那么它将不会被您的子句捕获。)

答案 2 :(得分:0)

您需要更改默认错误输出流。由于您最有可能编码servlet,因此可以更改为:

exc.printStackTrace(response.getWriter());

这会将异常跟踪打印到浏览器窗口中。