“@”抑制符為何無法隱藏錯(cuò)誤信息
在 php 中,錯(cuò)誤抑制符“@”可用于抑制錯(cuò)誤和警告消息。然而,對(duì)于數(shù)據(jù)庫連接等會(huì)拋出致命錯(cuò)誤 (fatal Error) 的操作,“@”抑制符將不再起作用。
原因:
自 php 8.0 開始,致命錯(cuò)誤不再被“@”抑制器抑制。這是由于致命錯(cuò)誤被認(rèn)為是嚴(yán)重的錯(cuò)誤,可能導(dǎo)致程序終止,因此 php 核心團(tuán)隊(duì)決定停止抑制此類錯(cuò)誤,以確保程序員能夠及時(shí)了解并解決這些嚴(yán)重問題。
解決方法:
為了解決此問題,請(qǐng)仔細(xì)檢查您的數(shù)據(jù)庫連接憑據(jù)并確保其正確無誤。另一種替代方法是使用 php 異常處理機(jī)制。您可以使用 try-catch 塊來捕獲數(shù)據(jù)庫連接異常:
try { // 連接數(shù)據(jù)庫 } catch (Exception $e) { // 處理數(shù)據(jù)庫連接異常 }
登錄后復(fù)制
此方法仍會(huì)顯示一個(gè)錯(cuò)誤消息,但它將是更準(zhǔn)確且更容易理解的錯(cuò)誤消息,可以幫助您更快地解決問題。