JAVAとnullとexception

検索していると「関数が失敗した時にはnullじゃなくexceptionをスローするべきだ」というのがあって、そういえばそうだなと思った。最近「例外」の使える言語を見ていなかった。

で、昨日書いた関数を書き直しかけたが、よく考えると昨日書いた関数では「正常な処理結果としてnullを返している」事に気付いた。検索した結果、該当がないというのは例外をスローする場合ではないよなぁ。


でも、nullじゃなくて空のNodeオブジェクトを返すべきな気はする。成功した時の戻り値はNodeだから、そうした方が色々うまくいく。再帰的に同じ関数を使っていく時とか。しかし、そうすると見つかったのか見つからなかったのかの区別を付けるのがめんどくさい…。つまり、その辺がトレードオフになるのか。

そして、「空のNodeを作る方法」というのが相変わらず特に決まっていない。
そして、NodeListインターフェイスは簡単だが、Nodeインターフェイスはとてもめんどくさい。