我有一个try catch
用于通过WPF C#应用程序发送电子邮件,如下所示:
try { smtpmail.Send(message); }
catch (Exception err) { throw new CustomException("Error contacting server.", err); }
但是,如果遇到此错误,我不希望应用程序停止运行/崩溃。相反,只需将错误更改为我在应用程序中设置的错误消息TextBox
...或者与NOT崩溃应用程序相关的内容,而是通知用户稍后再试(或者如果问题仍然存在:请联系-and-左右)。
编辑:期望:记录错误,但用户看到了这一点,
errorMsg.Text = "Error contacting server. Try again later, or if problem persists contact Billy Bob Boo";
我该如何实施?
更新:对于不明确的问题道歉。基本上我需要有关如何记录我的错误的帮助,但向用户显示友好的错误消息...但我问得很差。使用提供的评论和答案,我在下面研究了一些我自己的问题。感谢大家! :)
答案 0 :(得分:0)
为什么要捕获异常然后再次抛出异常?这似乎不太有效。
您可以使用消息框......
try {
smtpmail.Send(message);
}catch (Exception err) {
MessageBox.Show(err.Message, "Exception", MessageBoxButton.OK, MessageBoxImage.Error);
}
编辑:您刚才说您不希望用户知道异常。那么,只需将catch块留空:)
答案 1 :(得分:0)
我如何解决我的问题:
bool success = false;
try {
//try to send the message
smtpmail.Send(message);
success = true;//everything is good
}
catch (Exception err)
{
//error with sending the message
errorMsg.Text = ("Unable to send mail at this time. Please try again later.");
//log the error
errorLog.Log(err); //note errorLog is another method to log the error
//other stuff relating to certain parts of the application visibility
}
finally
{
if (success)
{
//what to do if the email was successfully sent
}
}