Php 如何防止向用户显示错误

Php 如何防止向用户显示错误,php,swiftmailer,Php,Swiftmailer,我有一个发送邮件的简单代码。有时,$host可能不可用,或者我的SMTP服务器可能已关闭,但在这种情况下,swiftmailer抛出了大量异常,$result尽管返回了true或false却给我带来了一大堆错误 那么,我如何才能关闭此代码页的错误,而不是整个库的错误呢 $transport = Swift_SmtpTransport::newInstance(self::$host, 25) ->setUsername(self::$username) ->s

我有一个发送邮件的简单代码。有时,
$host
可能不可用,或者我的
SMTP
服务器可能已关闭,但在这种情况下,
swiftmailer
抛出了大量异常,
$result
尽管返回了
true
false
却给我带来了一大堆错误

那么,我如何才能关闭此代码页的错误,而不是整个库的错误呢

    $transport = Swift_SmtpTransport::newInstance(self::$host, 25)
    ->setUsername(self::$username)
    ->setPassword(self::$password);

    //Create the Mailer using your created Transport
    $mailer = Swift_Mailer::newInstance($transport);
    $message = Swift_Message::newInstance("Custom Sheets");
    $message->setFrom(array('EDB@abc.com.pk' => 'Approval of Custom Duty Sheet'));
    $message->setTo($to);
    $message->setBody($html,'text/html');
    //Send the message
    $result = $mailer->send($message);

您可以捕获该异常并进行处理:

try {
    $transport = Swift_SmtpTransport::newInstance(self::$host, 25)
            ->setUsername(self::$username)
            ->setPassword(self::$password);

    //Create the Mailer using your created Transport
    $mailer = Swift_Mailer::newInstance($transport);
    $message = Swift_Message::newInstance("Custom Sheets");
    $message->setFrom(array('EDB@abc.com.pk' => 'Approval of Custom Duty Sheet'));
    $message->setTo($to);
    $message->setBody($html,'text/html');
    //Send the message
    $result = $mailer->send($message);
} catch(Exception $e) {
    // handle error here
}
通常关闭错误/警告/通知:

error_reporting(-1);

它仍在发出警告。有没有办法关掉warnings@MuhammadHaseebKhan我在回答中添加了一个注释,我只需要关闭我通过
错误报告(E_error | E_PARSE)所做的警告但无论如何,感谢您的帮助。为什么您不想知道SMTP服务器何时关闭?事实上,此邮件是通过ajax以json响应发送的,此类错误会影响json格式