這裏是代碼。smtpException被用戶代碼未處理
void sendMail()
{
MailMessage mail = new MailMessage();
mail.To.Add("[email protected]");
mail.From = new MailAddress("[email protected]", txt_name.Text);
mail.Subject = txt_subject.Text;
mail.Body = txt_body.Text;
SmtpClient smtp = new SmtpClient("smtp.gmail.com");
smtp.EnableSsl = true;
NetworkCredential yetki = new NetworkCredential("[email protected]", "11111111");
smtp.Credentials = yetki;
smtp.Send(mail);
Response.Write("mailiniz başarılı bir şekilde gönderilmiştir");
}
protected void btn_gonder_Click(object sender, EventArgs e)
{
sendMail();
}
@gmcalab因爲它是框架代碼。如果我打算採取一些可以糾正錯誤併成功完成對sendMail的調用的明確操作,或者我計劃重新拋出更專門化的異常,我只會將其放在sendMail中。如果我只是顯示一個消息框,我希望它在代碼的可重用部分之外。我不想從服務中調用sendMail並讓它嘗試顯示用戶永遠不會看到的消息框。 – AaronLS 2010-04-06 21:42:02
@gmcalab我的意思是,整個過程只是爲了向他展示一個try/catch。根據他在哪裏使用這段代碼,上下文中try/catch的位置以及實際做什麼的主題會有很大的不同。你是狹隘的認爲有一個解決方案適合所有的方法。 – AaronLS 2010-04-06 21:46:08
@gmcalab僅供參考,因爲我相信它和我的解決方案一樣有效,所以我給了你的解決方案一個滿意的答案。再次,嘗試/抓住的地方是分裂頭髮,因爲這是一個非常廣泛的討論,超出了問題的範圍。 – AaronLS 2010-04-06 21:48:00