It was my understanding that if you use "throw" in the catch block (and not "throw ex") the original stack trace should be retained, i.e. the point of the exception in the stack trace will be the line ...