c# – 捕捉一般例外情况

根据
this MSDN article,你不应该抓住一般例外.我确定有一个stackoverflow问题处理这个问题,我理解为什么它不是一个好习惯,但我今天刚刚在
another MSDN article看到了这个例子:

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        try
        {
            using (StreamReader sr = new StreamReader("TestFile.txt"))
            {
                String line = sr.ReadToEnd();
                Console.WriteLine(line);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("The file could not be read:");
            Console.WriteLine(e.Message);
        }
    }
}

是否有任何理由在该示例中捕获一般异常,或者只是他们懒得编写一个示例来捕获所有特定异常?

最佳答案 在这种情况下,这是一个例子,就像MSDN上的许多代码示例一样糟糕.

这应该是捕获IO异常而不是基类.

只要你重新抛出,捕获Exception就有意义的唯一地方是用于日志记录的全局异常处理程序.

点赞