In C#, throw ex
is almost always wrong, as it resets the stack trace.
I just wonder, is there any real world use for this? The only reason I can think of is to hide internals of your closed library, but that's a really weak reason. Apart from that, I've never encountered in the real world.
Edit: I do mean throw ex
, as in throwing the exact same exception that was caught but with an empty stacktrace, as in doing it exactly wrong. I know that throw ex has to exist as a language construct to allow throwing a different exception (throw new DifferentException("ex as innerException", ex)
) and was just wondering if there is ever a situration where a throw ex
is not wrong.