this post was submitted on 17 Jun 2023
144 points (96.8% liked)

Programmer Humor

32222 readers
13 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 

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

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 13 points 1 year ago (1 children)

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 4 points 1 year ago* (last edited 1 year ago) (1 children)

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] 4 points 1 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.