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

  • TwilightKiddy@programming.dev
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    Rethrowing caught exception in C# is just throw;, not throw ex;. This will delete old stack trace, which is very punishable if someone debugs your code later and you’re still around.

      • TwilightKiddy@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        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.