[英]Throwing and catching exceptions #2
我有一个控制台应用程序,可以压缩文件,然后通过电子邮件发送它们。 它每小时都会这样做。 我想知道应该处理哪种异常? 假设启动过程时是否没有可用的网络。 那我会得到什么例外呢? 失败的其他方式可能是什么。 所以基本上我正在尝试找出应该捕获的异常。
我有这样的东西
try
{
// zips files and send email
}
catch(System.Net.Mail.SmtpException e)
{
Console.WriteLine(e.toString());
}
catch(exception e)
{
}
理想情况下,您所使用的库将随附文档,其中列出了所有可能引发的异常类型,否则,您将不得不使用Reflector之类的工具来检查用于查找其异常的方法引发异常。
例如, SmtpClient.Send
方法(如http://msdn.microsoft.com/en-us/library/swas0fwc.aspx所述 )列出了以下异常:
记住要以衍生性的降序来捕获异常,即在SmtpException
之前捕获SmtpFailedRecipientsException
,因为SmtpFailedRecipientsException
派生自SmtpException
。
您可以查看MSDN页面,以查看某些方法或构造函数将从.NET库引发的异常类型。 例如,对于SmtpClient.Send方法 ,它将引发以下异常:
您可能也对这里有一个常见异常类型的链接感兴趣。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.