NullPointerExceptionなどの標準例外を使っていないわけ

Domaでは、Daoのメソッドに期待されない引数(nullとか)が渡された場合に例外をスローしますが、そのときの例外にNullPointerExceptionやIllegalArgumentExceptionを使っていません。代わりに、DomaNullPointerExceptionやDomaIllegalArgumentExceptionといったDoma独自の例外を投げます。

これはなぜかというと、Daoのメソッドに対する事前条件を満たしていないのか、それともDoma自身にバグあって例外がスローされてしまっているのをわかりやすくするためです。
つまり、DomaNullPointerExceptionやDomaIllegalArgumentExceptionがスローされるということは、「これはDomaが意図的にスローしています。なんらかの条件を満たしていません。」というメッセージです。そして、NullPointerExceptionやIllegalArgumentExceptionがスローされるということは、「Domaが意図せずにスローしてしまっています。Domaのバグかも。」といったメッセージなのです。

Effective Javaにはできるだけ標準例外を使えとありますが、標準例外をスローするのはJDKAPIだけでいいんじゃないかと最近思っています(catchされることを想定していない例外については)。

というわけで、DomaAPIからNullPointerExceptionやIllegalArgumentExceptionが発生したら、それはおそらくDomaのバグです。あと、AssertionErrorが発生してもそれはDomaのバグです。このブログやメーリングリストhttps://ml.seasar.org/mailman/listinfo/seasar-user)でお知らせください。