出错后继续执行代码并稍后在 PHP 中处理它们?

Mig*_*ira 3 php mysql email try-catch

我正在编写一个简单的 php 代码,用于从带有邮件列表的 MySQL 表发送电子邮件;
我正在尽我所能防止错误发生,验证字段并尽我所能防止错误发生。

我将使用 foreach 循环发送包含姓名和其他相关信息的每封电子邮件,但我担心出于某种原因,某些电子邮件或姓名可能会引发错误并在列表中途停止我的代码,让我无法知道它在哪里停止。

我想知道是否有办法跳过有问题的行并继续发送电子邮件,然后显示有关它发送失败的行的详细信息。

我以为我可以使用Try/Catch,但是我找不到异常后是否可以继续执行代码,并且找不到如何附加错误消息以在最后显示。

如果这不是处理可能错误的好方法,那么最好的方法是什么?

提前致谢!

Don*_*nic 5

try/catch肯定会为此工作。由于您特别关注异常后的继续执行,因此请记住,try块中包含的内容很重要。例如:

$array = [1, 2, 3, 'string', 5, 6];

try {
    foreach ($array as $number) {
        if (is_string($number)) throw new Exception("Not a number", 1);            
        echo $number;
    }
} catch (Exception $e) {
    echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

使用此代码,您会看到

123不是一个数字

因为在处理异常后,会在 catch 块之后继续执行,而不是在抛出异常的那一刻。

而在 foreach 循环中使用 try/catch

foreach ($array as $number) {
    try {
        if (is_string($number)) throw new Exception("Not a number", 1);            
        echo $number;
    } catch (Exception $e) {
        echo $e->getMessage();
    }
}
Run Code Online (Sandbox Code Playgroud)

异常后循环将继续,你会看到

123不是数字56