>>86
な、なるほど!
C言語のような発想をしていたかもしれません。
ひとつのメソッドの戻り値に
 ・処理に必要な値
 ・エラーを示す値
とふたつの意味を持たせるというのが、そもそも良くないということですね。

public bool hasHoge() {
}
public Int32 getHoge() {
}
if(hasHoge()) {
  value = getHoge();
  ...
}
とすることにします。