原です。

> まつもと ゆきひろです.

> 今思い付いたんですけど,こういうのはどうでしょう?
> 
>  fail $!, "bar->" + $!
> 
> つまり,第1引数が例外だったらその例外と同じ種類の例外を第2引
> 数のメッセージで発生させるという感じ.

なるほど。第一引数が、例外のクラス(error_type)であるときと、例
外のクラスのインスタンス(exeption)であるときで、動作を変えるわけ
ですね。

結構複雑だけど、今までとの整合性もあるし、八方丸く納まるような気
がします。(^_^)