When using throw after catching and handling an exception:
private void SaveRecord(Record record) { try { var db = new NorthwindDB(); db.SaveRecordInfo(null, record.ClientID, DateTime.Now).Execute(); // let's say this is the line 45 } catch (Exception ex) { _logger.Error("Failed saving db record", ex); throw; } }
We will get something like the following:
System.Transactions.TransactionManagerCommunicationException: blah blah blah ... at SampleApp.DataAccess.Repository.SaveRecord(Record record) in C:\Projects\SampleApp.DataAccess\Repository.cs:line 45
Which is what we want, in this example we want to log the exception and then re-throw it without losing the stack trace info (and the exact line of code where the exception occurred)
"Throw exception"
No comments yet. -