こんなものを作れという指令が出たので作った。
public sealed class ExceptionStack
{
private readonly static Stack _abyss = new Stack();
public static void Push( Exception ex )
{
_abyss.Push( ex );
}
public static Exception Pop()
{
return ( Exception )_abyss.Pop();
}
}
使い方は簡単。
システム内のどこかで例外が発生したら、即座に捕まえて、上には伝播させずにここに放り込んで、呼び出し元にはfalseなりnullなり-1なり、失敗した旨の戻り値を返す。
呼び出し元は戻り値をチェックしたらここから例外を引っ張り出して処理を行う、というわけだ。
もうやだこの仕事。orz