我有一个控制台应用程序,可以压缩文件,然后通过电子邮件发送。它每小时都这样做。 我想知道我应该处理什么样的例外?假设进程启动时是否没有可用的网络。那我会得到什么例外?而这可能是失败的其他方式。所以基本上我想弄清楚我应该抓住哪些例外。
我有类似的东西
try
{
// zips files and send email
}
catch(System.Net.Mail.SmtpException e)
{
Console.WriteLine(e.toString());
}
catch(exception e)
{
}
答案 0 :(得分:0)
理想情况下,您正在使用的库将附带文档,列出可以抛出的所有类型的异常,否则您将不得不使用像Reflector这样的工具来检查您正在使用的方法找到他们抛出的异常。
例如,SmtpClient.Send
方法(此处记录为http://msdn.microsoft.com/en-us/library/swas0fwc.aspx)列出了以下例外情况:
请记住按衍生度的降序捕获异常,即在SmtpFailedRecipientsException
之前捕获SmtpException
,因为SmtpFailedRecipientsException
来自SmtpException
。
答案 1 :(得分:0)
您可以查看MSDN页面,以查看某些方法或构造函数将从.NET库中抛出的异常类型。例如,对于SmtpClient.Send method,它会抛出以下异常:
您可能感兴趣的常见异常类型链接位于here。