[英]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.