TCPDataLink
を使用していくつかの TCP 機能を実装するクラスがあります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
ですか?
ありがとう、