正确的try-catch语法?

时间:2015-02-13 09:51:47

标签: c#

如果我想保留堆栈跟踪,我有这个catch块......

try
{
    //Cause exception here...
}
catch (CustomException customEx)
{
    //Handle custom exception here...
}
catch
{
    throw;
}

上面的捕获(没有参数)是否会重新抛出异常?

2 个答案:

答案 0 :(得分:3)

你的问题不清楚。您的实际问题似乎是catch(SpecificException)是否会落入一般catch?”,答案为“否”。

如果“the”异常是指“除CustomException之外的任何其他例外”,那么是的,它们将被重新抛出。

如果你想重新抛出后者,你还需要throw中的catch(CustomException customex)

答案 1 :(得分:0)

您可以使用try-catch-finally

  

catch的常见用法最后是在try块中获取和使用资源,处理catch块中的异常情况,并释放finally块中的资源。   有关重新抛出异常的更多信息和示例,请参阅try-catch和Throwing Exceptions。有关finally块的更多信息,请参阅try-finally。

了解更多详情,请参阅

https://msdn.microsoft.com/en-us/library/dszsf989.aspx