Bir SO sorusu üzerine sordum burada herhangi birinden cevap, ben hakkında emin bazı kod hakkında "BTW, korkunç kod var. O sembol (@) çok bastırmak hatayı kullanır"
Bunun kötü uygulama olmasının bir nedeni var mı? Gibi şeyler ile:
$db=@new mysqli($db_info) or die('Database error');
, yalnızca özel bir hata mesajı görüntülememi sağlıyor. Hata bastırma olmadan, tipik PHP mesajını göstermeye devam eder:
Uyarı : mysqli :: mysqli (): php_network_getaddresses: getaddrinfo başarısız oldu: Böyle bir ana bilgisayar bilinmiyor. içinde bazı \ dosya \ yolu üzerinde hat 6
yanı sıra 'Veritabanı hatası'.
Hata bastırma her zaman kötü mü ve eğer öyleyse, yukarıdakiler hakkında özellikle kötü olan şey nedir?
Güncelleme: kullandığım gerçek kod:
or error('Datatabase error', 'An error occurred with the database' . (($debug_mode) ? '<br />MySQL reported: <b>' . $db->error . '</b><br />Error occurred on line <b>' . __LINE__ . '</b> of <b>' . __FILE__ . '</b>' : ''))
önceki tüm çıktıları siler ve bir hata mesajı görüntüler. Bu nedenle, hata mesajının özel olarak ne olduğu hakkında ayrıntılar içermemesi (ki bu, hata bastırma işleminin kötü olmasının bir nedeni olarak öne sürülen) önemsizdir.
or error('Datatabase error', 'An error occurred with the database' . (($debug_mode) ? '<br />MySQL reported: <b>' . $db->error . '</b>' : ''))