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

时间:2014-09-07 13:51:47

标签: c# visual-studio visual-studio-2012 visual-studio-2013

根据MSDN,捕获没有特定类型的异常并使用例如System.Net.Exception

是一种不好的做法。

每次我要捕获错误时,是否必须深入查看msdn手册以查看可能的异常类型。或者IDE中有什么方法让我快速看到这个。

目前我正在使用Visual Studio 2013 Express Edition

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

编辑:this link中,看起来VS已经有一个显示exeptions的选项,但是,当我选择一个方法时,它只显示方法的类型和参数。但它并没有显示异常

3 个答案:

答案 0 :(得分:2)

通常情况下,最佳做法是仅为您希望在程序运行期间发生的异常添加处理。

如果您正在处理文件,例如,处理*** NotFoundException类型是有意义的。正确的编码将确保ArgumentNullException之类的东西不会发生,因此不需要处理等。

答案 1 :(得分:1)

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

除非

,否则您无法知道可能抛出的异常
  • 您正在调用的方法已有详细记录,其中列出了潜在的例外情况(最佳情况)
  • 您知道具体的不良案例,运行它们并查看它们创建的例外情况(不良案例)
  • 你不知道什么可能出错并记录所有内容,每次出现意外情况时修改你的捕获(最坏的情况)

答案 2 :(得分:0)

没有内置功能可以自动显示,但您将插入符号放在方法名称的某处,然后按 CTRL Space 。此处显示的信息与您链接中的信息相同,因此它应显示DownloadString方法的两个例外情况。

将鼠标悬停在DownloadString上并不一定会显示与点击方法名称并按 CTRL Space 相同的信息(后者显示你是方法抛出的异常。)