Welcome to Julian Kuiters Friday, October 19 2018 @ 10:09 AM AEDT

Keeping Exception.StackTrace Intact when Rethrowing an Exception

.NET Programming

Nick Weinholt (.Net Performance guru and MVP) has an article on the correct method for rethrowing an exception in C# so that the Exception.StackTrace actually points to the root problem.

In C# the correct method for rethowing an exception is using throw; without any arguments within the catch block:

try {
// code
catch (Exception ex) {
throw; // Rethrow exception without resetting StackTrace

In VB.Net the method is the same:

' code

Catch ex As Exception
Throw ' Rethrow exception without resetting StackTrace

End Try

Using this method the stack trace will go all the way down to the original exception, and not just to your catch block.