KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Problem: I would like to catch any exceptions from any method in a class so that I may record class specific data to the exception for logging before it is passed up the stack. I know that I can put a try-catch in every method of the class, but there are many methods and It seems there should be a more efficient way. Example of what I am currently doing: public class ClassA { private int x; private int y; public void Method1() { try { //Some code } catch(Exception ex) { ex.Data.Add("x", x); ex.Data.Add("y", y); throw; } } public void Method2() { try { //Some code } catch (Exception ex) { ex.Data.Add("x", x); ex.Data.Add("y", y); throw; } } } Example of what I would like to do: public class ClassB : IUnhandledErrorHandler { private int x; private int y; public void Method1() { //Some code } public void Method2() { //Some code } void IUnhandledErrorHandler.OnError(Exception ex) { ex.Data.Add("x", x); ex.Data.Add("y", y); throw; } } public interface IUnhandledErrorHandler { void OnError(Exception ex); } Note: This class is a service in a WCF project and implements a ServiceContract. I have tried adding an ErrorHandler to the service's ChannelDispatcher. However, when the error reaches the ErrorHandler it is already beyond the scope of the class where the error occurred, so I cannot access the class details. Solution: public class ClassC { public ClassC() { AppDomain.CurrentDomain.FirstChanceException += OnError; } private int x; pri
Tags (comma-separated)
Save Edits
Cancel