В настоящее время я получаю set_error_handler()
, бросая ErrorException
всякий раз, когда что-либо встречается.Кроме того, у меня error_reporting()
на -1
, поэтому неправильная индексация массива вызывает исключение.
В любом случае, это краткий обзор моей среды ошибок / отчетов;функция PHP mail()
выдает ошибки на моей ( Win7 ) машине разработки во время процесса, предназначенного для проекта, потому что у меня не установлен почтовый сервер.Я попытался поставить префикс с @
, чтобы закрыть его, но он все равно вызывает ошибку и, следовательно, выдает исключение.Я мог бы обернуть это с try{}
, но мне любопытно, почему это не закрывается.
Почему это не закрывается?
Повторюсь,мы можем почти удалить mail()
из уравнения (насколько я могу судить );Я просто хочу знать, почему @
не будет выполнять свою работу при таких обстоятельствах, с mail()
или любой другой функцией.Я просто подумал, что mail()
может быть особым случаем по какой-то причине.
Спасибо нашему другу XDebug
:
(!) ErrorException: mail () [function.mail]: не удалось подключиться к почтовому серверу через порт «localhost» 25, проверить настройки «SMTP» и «smtp_port» в php.ini или использовать ini_set () в C: \ xampp \ htdocs \ dbc_relaunch_2-0-0 \ mf \ handlers \ api \ mail \ send.php в строке 16
Хорошо, я просто пошел с:
try{
mail($args);
catch(Exception $exception){
return $failure;
}
return $success;
Вместо:
if(@mail($args)){
return $failure;
}
return $success;
И все хорошо;Я просматриваю ответ @Pheonix по ссылке, но любой, у кого есть короткий ответ на вопрос, почему он может ответить бесплатно.