0

编写以下代码的最佳方法是什么:

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。我只是不知道这是否是最好的方法。

4

1 回答 1

0

除其他外,您不应该抓住Exception类型。只捕获您知道如何处理的异常。你无法处理NullReferenceExceptionor ArgumentNullException,所以不要尝试。仅捕获那些在发送电子邮件时可能引发的异常。诸如SmtpExceptionFormatException(对于电子邮件地址格式错误)之类的东西。

于 2013-05-13T23:34:07.360 回答