Brilliant exception handling I found in an app i had to work on

    • throw ex; treats ex as a new exception, so, it starts a new stack trace for it from itself and deletes stack trace that was saved in ex.StackTrace. On the other hand, throw; takes already present exception in the scope and throws it without modifying the stack trace, preserving the original method that threw ex in the stack trace.

      I feel like I wrote the same thing twice. I’m a bit bad with explaining stuff, feel free to ask more specific questions if you still don’t understand the difference.