0

我有一个压缩文件然后通过电子邮件发送它们的控制台应用程序。它每小时都会这样做。我想知道我应该处理什么样的异常?假设进程开始时是否没有可用的网络。那我会得到什么例外?还有什么可能会失败的其他方式。所以基本上我想弄清楚我应该捕捉哪些异常。

我有这样的东西

try
{
    // zips files and send email
}      
catch(System.Net.Mail.SmtpException e)
{
    Console.WriteLine(e.toString());
}
catch(exception e)
{

}
4

2 回答 2

0

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

  • 参数NullException
  • 无效操作异常
  • ObjectDisposedException
  • SMTP异常
  • SmtpFailedRecipientsException

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

于 2013-11-04T05:38:44.990 回答
0

理想情况下,您使用的库将附带列出所有可以抛出的异常类型的文档,如果没有,那么您将不得不使用 Reflector 之类的工具来检查您使用的方法以找到它们抛出的异常。

例如,该SmtpClient.Send方法(如此处记录的http://msdn.microsoft.com/en-us/library/swas0fwc.aspx)列出了这些例外情况:

  • 参数NullException
  • 无效操作异常
  • ObjectDisposedException
  • SMTP异常
  • SmtpFailedRecipientsException

请记住按派生性的降序捕获异常,即在因为派生自SmtpFailedRecipientsException之前捕获。SmtpExceptionSmtpFailedRecipientsExceptionSmtpException

于 2013-11-04T05:36:51.420 回答