• ベストアンサー

try catch

public String getMessage() { try { .... return "okay"; } catch (Exception e) { return "error"; } のように、エラーが起こったら catch 句で String を返すとうプログラムはありですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

returnに限らず、例外をif文のように利用することは できるだけ避けるべきね。 特にcatchする例外がExceptionだと 継続不可能な例外が発生したときでも 正常系として処理される可能性があるわ。 このような例外で処理を分けるようなことは 処理として本当に問題ないかどうか きちんと考慮した上で利用しないといけない。 特にRuntimeException系は原則catchするべきではないわ。 RuntimeException系はcatchせずに判定することができるからね。 NullPointerExceptionなんかがいい例ね。 そういう点をきちんと考慮した上で ここはこう実装するのがいい という確信が持てるのなら一向に構わないわよ。 そうそう、本当にそれが例外ならばどんどん使っていいわよ。 提示したコードが単純に 例外が発生しない場合okay、発生した場合errorを返す と言うような単純なvalidate的なものなら それは問題ないわ。 でも、messageがnullのときは""を返す というような判定に catch(NullPointerException)はダメ。 きちんとif文で判定しましょう。 長くなったわね。 言いたいことが上手く伝わっているといいんだけど。 簡単にまとめると ・判定できるものはちゃんと判定しよう ・catchするのはできるだけ意味のある例外にしよう と言ったとこかな。

noname#101202
質問者

お礼

catch は適切な例外で catch して NullPoなどは判定していきます。すっきりしました。ありがとうございます。

関連するQ&A