如何在使用try-catch时知道可能的异常

本文关键字:异常 try-catch | 更新日期: 2023-09-27 18:20:53

根据MSDN,在没有特定类型的情况下捕获异常是一种糟糕的做法,例如使用System.Net.Exception

我是否必须深入阅读msdn手册,以便在每次发现错误时查看可能的异常类型。或者IDE中有什么方法可以让我快速看到这一点。

目前我正在使用Visual Studio 2013速成版

 try
 {
    using (WebClient goog = new WebClient()) 
    {
       goog.DownloadString("http://google.com");
    } 
 }
 catch(Exception E)
 {
    saveLog("methodname", E.Message);
 }

编辑:在这个链接中,VS似乎已经有了一个显示exeptions的选项,但是,当我选择一个方法时,它只显示该方法的类型和参数。但它没有显示异常

如何在使用try-catch时知道可能的异常

通常,最佳做法是只添加对程序运行时可能发生的异常的处理。

例如,如果您正在处理文件,那么处理***NotFoundException类型是有意义的。正确的编码将确保像ArgumentNullException这样的事情不会发生,因此不需要处理等。

与Java不同,C#不需要在方法的签名中列出潜在的exeption。这有好的一面也有坏的一面。你刚刚遇到了不好的一面。

除非,否则您无法知道可能引发的异常

  • 您正在调用的方法有很好的文档记录,其中列出了潜在的异常(最佳情况)
  • 你知道具体的坏情况,运行它们,看看它们会产生什么异常(坏情况)
  • 你不知道会出什么问题,把所有事情都记录下来,每次发生意外时都会修改你的捕获量(最坏的情况)

没有内置的功能可以自动显示这一点,但您可以将插入符号放在方法名称的某个位置,然后按CTRL空格。这里显示的信息与链接中的信息相同,因此它应该显示DownloadString方法的两个异常。

将鼠标悬停在DownloadString上不一定会显示与单击方法名称并按CTRL空格