[ACCEPTED]-difference between throw and throw ex in c# .net-throw
Yes - throw
re-throws the exception that was 9 caught, and preserves the stack trace. throw ex
throws 8 the same exception, but resets the stack trace to that method.
Unless 7 you want to reset the stack trace (i.e. to shield 6 public callers from the internal workings 5 of your library), throw
is generally the better choice, since 4 you can see where the exception originated.
I 3 would also mention that a "pass-through" catch 2 block:
try
{
// do stuff
}
catch(Exception ex)
{
throw;
}
is pointless. It's the exact same 1 behavior as if there were no try/catch
at all.
Throw will rethrow original exception;
throw 4 ex will create a new exception, so the stack 3 trace changes. Usually makes little sense, in 2 general you should either just throw, or 1 create a new exception and throw that, eg
// not a great code, demo purposes only
try{
File.Read("blah");
}
catch(FileNotFoundException ex){
throw new ConfigFileNotFoundException("Oops", ex);
}
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.