- ベストアンサー
try catch
public String getMessage() { try { .... return "okay"; } catch (Exception e) { return "error"; } のように、エラーが起こったら catch 句で String を返すとうプログラムはありですか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
returnに限らず、例外をif文のように利用することは できるだけ避けるべきね。 特にcatchする例外がExceptionだと 継続不可能な例外が発生したときでも 正常系として処理される可能性があるわ。 このような例外で処理を分けるようなことは 処理として本当に問題ないかどうか きちんと考慮した上で利用しないといけない。 特にRuntimeException系は原則catchするべきではないわ。 RuntimeException系はcatchせずに判定することができるからね。 NullPointerExceptionなんかがいい例ね。 そういう点をきちんと考慮した上で ここはこう実装するのがいい という確信が持てるのなら一向に構わないわよ。 そうそう、本当にそれが例外ならばどんどん使っていいわよ。 提示したコードが単純に 例外が発生しない場合okay、発生した場合errorを返す と言うような単純なvalidate的なものなら それは問題ないわ。 でも、messageがnullのときは""を返す というような判定に catch(NullPointerException)はダメ。 きちんとif文で判定しましょう。 長くなったわね。 言いたいことが上手く伝わっているといいんだけど。 簡単にまとめると ・判定できるものはちゃんと判定しよう ・catchするのはできるだけ意味のある例外にしよう と言ったとこかな。
お礼
catch は適切な例外で catch して NullPoなどは判定していきます。すっきりしました。ありがとうございます。