在C#中,throw ex
几乎总是错误的,因为它会重置堆栈跟踪。
我只是想知道,这有没有实际的用途?我能想到的唯一原因是隐藏您封闭库的内部,但那真的很弱。除此之外,我在现实世界中从未遇到过。
编辑:我的意思是throw ex
,即抛出与捕获的完全相同的异常,但具有空堆栈跟踪,就像完全错误地执行一样。我知道throw ex
必须作为语言结构存在才能允许抛出不同的异常(throw new DifferentException("ex as innerException", ex)
),只是想知道是否存在throw ex
不错误的情况。
throw ex;
还是只是想要使用throw;
? - Andrew Barberthrow;
)。 - Andrew Barber