簡體   English   中英

PHP異常顯示在try和catch塊中

[英]PHP Exception shows anyway in try & catch block

我有一個非常奇怪的情況:下面顯示的代碼應該在PHP中不打印錯誤。

try {
    throw new Exception('foo');
} catch(Exception $e) {
    // here could be some custom functions to handle errors
    die();
}

在我的計算機上打印

( ! ) SCREAM: Error suppression ignored for
( ! ) Exception: foo. in D:\wamp\www\index.php on line 4

為什么? 哪個php ini選項呢?

Scream擴展是針對開發人員的擴展,因此即使通常會被抑制,他們也可以從代碼中看到錯誤消息。

xDebug是另一個開發人員擴展,也包含相同的功能。

如果您具有這些擴展中的任何一個,則可以在PHP配置中禁用Scream功能。

但這些擴展都不應該在生產系統上使用 - 它們僅用於開發人員的系統。 如果它在您的實時站點上,則應完全禁用該擴展。

http://www.php.net/manual/en/scream.examples-simple.php

通常,尖叫用於覆蓋靜默運算符(@),但如果也將其用作try catch,則...也可以嘗試使用內聯ini_set將其關閉,看看是否可以解決該問題。

謝謝大家的答案。 是的,問題是Xdebug的,更准確: xdebug.show_exception_trace選項,這是轉向。 on

正如我們從xdebug文檔中看到的:

xdebug.show_exception_trace
類型:整數,默認值:0
當此設置設置為1時,Xdebug將在引發異常時顯示堆棧跟蹤 - 即使實際捕獲到此異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM