подавление ошибок php? … почему?

Эй, ребята, мне было интересно, почему вы «подавите» ошибку php? Я, очевидно, вижу разницу в дополнительной строке, которая выплевывается из ошибки … но хорошо ли ее подавлять?

Access denied for user 'user'@'localhost' (using password: YES) 

Vs

 Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'user'@'localhost' (using password: YES) in (deleted) on line 8 Access denied for user 'user'@'localhost' (using password: YES) 

Если да, должен ли я привык печатать @ в начале моих запросов mysql в моем php?

Благодаря!

Solutions Collecting From Web of "подавление ошибок php? … почему?"

Вы не должны вдаваться в привычку подавлять ошибки. Ошибки есть по какой-то причине. Вместо этого обработайте их правильно и защитно в своем коде и продолжайте уточнять код до тех пор, пока ошибки не исчезнут.

Вы должны делать такие вещи, как:

 $conn = mysql_connect($host, $user, $pass); // Always test to see if your action/connection/whatever was successful if (!$conn) { // something went wrong. handle the error // Display a message for the user, write a message to `error_log()`, whatever's appropriate } else mysql_select_db($dbname); 

В производственной системе вы никогда не должны отображать ошибки, поскольку это может привести к отказу от деталей вашего кода и базы данных. Вместо этого отключите display_errors в php.ini или во время выполнения:

 // In development and production, make sure all errors are reported error_reporting(E_ALL & E_STRICT); // In development show all errors on screen so you handle them as they occur ini_set('display_errors', 1); // In production turn them off ini_set('display_errors', 0); 

На самом деле, подавление ошибок с помощью @ является вторым по популярности для плохой практики PHP в этом классическом вопросе.