<分区>
谁能简单告诉我throw
和throw ex
的区别?
我读到 throw
存储了以前的异常,但没有得到这一行。
我可以通过示例简要说明吗?
<分区>
谁能简单告诉我throw
和throw ex
的区别?
我读到 throw
存储了以前的异常,但没有得到这一行。
我可以通过示例简要说明吗?
最佳答案
是 - throw
重新抛出捕获的异常,并保留堆栈跟踪。 throw ex
抛出相同的异常,但重置堆栈跟踪到该方法。
除非您想要重置堆栈跟踪(即保护公共(public)调用者免受库内部工作的影响),throw
通常更好的选择,因为您可以看到异常的来源。
我还要提到“传递”catch block :
try
{
// do stuff
}
catch(Exception ex)
{
throw;
}
毫无意义。这与根本没有 try/catch
时的行为完全相同。
关于c# - c#.net 中 throw 和 throw ex 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21756461/