Mig*_*ira 3 php mysql email try-catch
我正在编写一个简单的 php 代码,用于从带有邮件列表的 MySQL 表发送电子邮件;
我正在尽我所能防止错误发生,验证字段并尽我所能防止错误发生。
我将使用 foreach 循环发送包含姓名和其他相关信息的每封电子邮件,但我担心出于某种原因,某些电子邮件或姓名可能会引发错误并在列表中途停止我的代码,让我无法知道它在哪里停止。
我想知道是否有办法跳过有问题的行并继续发送电子邮件,然后显示有关它发送失败的行的详细信息。
我以为我可以使用Try/Catch,但是我找不到异常后是否可以继续执行代码,并且找不到如何附加错误消息以在最后显示。
如果这不是处理可能错误的好方法,那么最好的方法是什么?
提前致谢!
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