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

    • grimmi@feddit.de
      link
      fedilink
      arrow-up
      1
      ·
      2 years ago

      If this is C# (and it looks like it is), this leads to you losing the original stack trace up until this point.

      The correct way to do this in C# is to just throw; after you’re done with whatever you wanted to do in the catch.

      • jyte@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        2 years ago

        wait what ?

        So you are saying that the following code will keep throwing e but if I used throw e; it would basically be the same except for the stack trace that would be missing the important root cause ?!

        try {
        } catch (WhateverException e) {
            // stuff, or nothing, or whatever
            throw; 
        }
        
        • TwilightKiddy@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          2 years ago

          Exactly. Aside from deleting your already built stack trace, as a bonus you’ll get another stack trace building call, enjoy wasted CPU cycles.