繁体   English   中英

引发和捕获异常#2

[英]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所述 )列出了以下异常:

  • ArgumentNullException
  • InvalidOperationException
  • ObjectDisposedException
  • SmtpException
  • SmtpFailedRecipientsException

记住要以衍生性的降序来捕获异常,即在SmtpException之前捕获SmtpFailedRecipientsException ,因为SmtpFailedRecipientsException派生自SmtpException

您可以查看MSDN页面,以查看某些方法或构造函数将从.NET库引发的异常类型。 例如,对于SmtpClient.Send方法 ,它将引发以下异常:

  • ArgumentNullException
  • InvalidOperationException
  • ObjectDisposedException
  • SmtpException
  • SmtpFailedRecipientsException

您可能也对这里有一个常见异常类型的链接感兴趣。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM