异常处理的最佳实践

时间:2014-12-01 15:09:02

标签: c# .net

需要知道下面两种方法在副方法中的异常处理方面的区别,还需要知道哪种方法是最好的方法

        public string TestMethod()
        {
            try
            {

            }
            catch (Exception exception)
            {
                // Log error here
                throw new Exception("error message");
            }

            return null;
        }


        public string TestMethod2()
        {
            try
            {

            }
            catch (Exception exception)
            {
                // Log error here
                throw;
            }

            return null;
        }

1 个答案:

答案 0 :(得分:3)

最佳取决于具体情况,但有必要强调第二个方面的好处:

当你只使用throw时,你不会创建一个新的异常,所以如果有人处理这个异常,在调用堆栈的顶部,他知道确切的来源的例外,因此可以采取相应的行动。

这与第一种方法完全不同,在第一种方法中,您将使用新的“历史记录”创建新的异常实例。