我有一个类TCPDataLink
使用Socket
. 我还有一个IOManager
在抛出错误时(在我所有的DataLink
)上进行一些日志记录的工具。
问题是我找不到从我的类中捕获Socket
事件处理程序异常的方法。IOManager
我不想Logger
在我的类中注入依赖项,TCPDataLink
因为我不想在我的所有DataLink
类中重复日志记录代码。
正常情况下的示例:
// IOManager Class call in a normal case
try
{
tcpInstance.DoSomething
}
catch (MyCustomEx e)
{
// Log the problem
Logger.log(e.ToString());
}
在我有问题的情况下:
// TCPDataLink.cs
...
socket.OnConnection += ConnectionHandler // Cannot try/catch or whatever
...
void ConnectionHandler(...)
{
// Code throwing Exceptions
}
根据这个线程,外部 try/catch 不是一个选项。所以我必须抓住Exception
我的ConnectionHanlder
和...?
在没有可能捕获的情况下,从我的 IOManager 登录的最佳选择是什么Exception
?
谢谢,