簡體   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