繁体   English   中英

为什么不打印堆栈跟踪?

[英]Why doesn't the stack trace get printed?

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

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

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

因为没有Exception可以捕获:

try {
    // Add Code Here
}

您将只打印堆栈跟踪的Exception是中抛出try这样的块:

try {
    throw new RuntimeException();
}

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

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

如果您的容器/ IDE /框架重定向了流,那么您将不会在预期的位置看到它,另请参见System.setErr(...); 当然,我希望您已经检查过您的代码是否确实引发了Exception (如果发生Error则子句不会捕获该Exception )。

您将需要更改默认错误输出流。 由于您很可能正在编写servlet ,因此可以更改为:

exc.printStackTrace(response.getWriter());

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM