DのExceptionとError

また昨日の話(id:ABA:20030826#p3)の続き。DのErrorおよびExceptionはdmd\src\phobos\object.dに記述があった。

Exceptionはコンストラクタがthis(char msg)でtoString()メソッドでmsgが帰ってくる。ErrorはExceptionをextendsしたクラスで、コンストラクタにthis(char msg, Error next)というのが加わっている。nextはおそらくエラーのネストを管理するためのもので、JavaのJDK1.4から備わった、Chained Exception Facilityと同じものだろう。

なので原因をErrorで表記したいときはError、そうでないときはExceptionを使うことになる。なんかこの区別気持ち悪いなあ。