编写以下代码的最佳方法是什么:
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.";
}
}
我正在尝试遍历数据表并向数据表中列出的不同电子邮件发送电子邮件,然后在数据表中的所有电子邮件发送完成后重定向到Page.aspx。但是,如果电子邮件失败,我想显示标签lblSent。我只是不知道这是否是最好的方法。
答案 0 :(得分:0)
除此之外,您不应该捕获Exception
类型。只捕获您知道如何处理的异常。您无法处理NullReferenceException
或ArgumentNullException
,因此请勿尝试。仅捕获发送电子邮件时可能抛出的异常。诸如SmtpException
或FormatException
之类的内容(针对电子邮件地址格式错误)。