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

  • @[email protected]
    link
    fedilink
    131 year 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
      link
      4
      edit-2
      1 year 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; 
      }
      
      • @[email protected]
        link
        fedilink
        41 year 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.