相关疑难解决方法(0)

使用PHPMailer处理错误

我正在尝试将PHPMailer用于一个小项目,但我对使用该软件进行错误处理感到困惑.希望有人有经验.当我设置电子邮件时,我使用:

$result = $mail->Send();

if(!$result) {
    // There was an error
    // Do some error handling things here
} else {
    echo "Email successful";
}
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,或多或少.问题是当出现错误时,PHPMailer似乎也将错误消除了,所以如果出现问题,它只是将该信息直接发送到浏览器,基本上打破了我试图做的任何错误处理.

有没有办法让这些消息沉默?它没有抛出异常,只是打印出错误,在我的测试用例中是:

invalid address: @invalid@email You must provide at least one recipient email address.
Run Code Online (Sandbox Code Playgroud)

它意味着是一个错误,但它应该驻留在$ mail-> ErrorInfo; 没有被软件回应.

php phpmailer

43
推荐指数
5
解决办法
17万
查看次数

PHP try-catch块:它们能够捕获无效的arg类型吗?

背景:假设我有以下显然不正确的PHP:

    try{
        $vtest = '';
        print(array_pop($vtest));
    }catch(Exception $exx){}
Run Code Online (Sandbox Code Playgroud)

为了使用array_pop,$ vtest显然应该是一个数组,而不是一个字符串.然而,当我运行此代码时,会显示警告.我不希望这样,我只是希望代码无声地失败.

问题:与其他语言相比,PHP try-catch是否有一些特殊之处导致这种情况无效?

免责声明: 仅供参考,确实有其他方法可以在PHP中处理这种情况,但这些都是不可取的.这里的目标是避免:

"签名"技巧:

        $vtest = '';
        print(@array_pop($vtest)); // <-- would like to avoid this
Run Code Online (Sandbox Code Playgroud)

类型铸造:

        $vtest = '';
        $vtest = (array)$vtest;  
        print(array_pop($vtest));
Run Code Online (Sandbox Code Playgroud)

php arrays exception try-catch

14
推荐指数
2
解决办法
7412
查看次数

标签 统计

php ×2

arrays ×1

exception ×1

phpmailer ×1

try-catch ×1