在Foreach循环中尝试Catch
本文关键字:Catch Foreach 循环 | 更新日期: 2023-09-27 18:13:18
写下面代码的最好方法是什么?
foreach (DataRow row in table.Rows)
{
try
{
SendEmail(emailadress); //method that will send emails
MessageSent(true);
}
catch (Exception)
{
MessageSent(false);
break;
}
}
void MessageSent(Boolean IsSuccesful)
{
if (IsSuccesful)
{
Response.BufferOutput = true;
Response.Redirect("~/Page.aspx");
}
else
{
lblSent.Text = "Email has failed.";
}
}
我试图通过数据表迭代,并发送电子邮件到数据表中列出的不同的电子邮件,然后重定向到页面。在发送完数据表中的所有电子邮件后,执行成功。但是,如果邮件失败,我想显示标签lblSent。我只是不知道这是不是最好的办法。
除此之外,您不应该捕获Exception
类型。只捕获您知道如何处理的异常。你不能处理NullReferenceException
或ArgumentNullException
,所以不要尝试。只捕获那些在发送电子邮件时可能抛出的异常。如SmtpException
或FormatException
(用于电子邮件地址格式错误)。