需要知道下面两种方法在副方法中的异常处理方面的区别,还需要知道哪种方法是最好的方法
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;
}
答案 0 :(得分:3)
最佳取决于具体情况,但有必要强调第二个方面的好处:
当你只使用throw
,时,你不会创建一个新的异常,所以如果有人处理这个异常,在调用堆栈的顶部,他知道确切的来源的例外,因此可以采取相应的行动。
这与第一种方法完全不同,在第一种方法中,您将使用新的“历史记录”创建新的异常实例。