隱匿錯(cuò)誤信息無(wú)效?
你在使用 if 語(yǔ)句來(lái)連接數(shù)據(jù)庫(kù),并在輸入錯(cuò)誤登錄信息時(shí)希望看到 if 語(yǔ)句中的錯(cuò)誤信息。然而,系統(tǒng)卻報(bào)告了一個(gè)致命錯(cuò)誤,讓你懷疑配置文件的問(wèn)題或其他未知因素。
原因解惑:
從 php 8.0 版本開(kāi)始,@ 抑止符不再有效抑制致命級(jí)別的錯(cuò)誤。這意味著一旦發(fā)生致命錯(cuò)誤,即使使用 @ 也無(wú)法阻止其顯示。
解決辦法:
為了僅在錯(cuò)誤發(fā)生時(shí)顯示 if 語(yǔ)句中的錯(cuò)誤信息,你需要使用 try-catch 語(yǔ)句。該語(yǔ)句允許你捕獲特定類(lèi)型的異常(例如數(shù)據(jù)庫(kù)連接錯(cuò)誤),并提供自定義錯(cuò)誤處理邏輯。例如:
try { // 數(shù)據(jù)庫(kù)連接代碼 } catch (PDOException $e) { echo $e->getMessage(); // 顯示自定義錯(cuò)誤信息 }
登錄后復(fù)制