C♯相談室 Part2
■ このスレッドは過去ログ倉庫に格納されています
0708705
NGNGそうなんですね…ありがとうございます。
ちょっとC#というより例外の仕組みのある言語全般での事で質問なのですが、
たとえば あるオブジェクトが移動する Move() というメソッドを作るとして、
そのオブジェクトが移動できなかった = 関数が失敗した場合、どういう風に失敗した事を伝えたらいいかな?というのでちょっと悩んでいます。
考えてみたのは
(1) boolな戻り値で成功/失敗を返す
(2) 例外を投げる
(3) 成功/失敗をあらわすEnum値を返す
という3通りなのですが、(1) は True と False どっちが成功なのかわかりづらいし
(2)は万が一 try-catch で囲んでいないとそれだけで落ちるのが痛いなと思っています。(場合によっては Move が失敗しても呼び出し元は関係ない場合があるのでチェックの必要がない場合もあるんです)
どの方法がベストでしょうか?
あと、その気になれば Move を呼び出す側のコードで、それが失敗するかどうかチェックできない事もないのですが
事前にチェックして失敗する場合は回避すべきか、それとも例外/戻り値で判断すべきかでも微妙に悩んでいます。
昔どこかで「エラーが起きる前にチェックできる場合はチェックせよ」というのを読んだ記憶があるのですが
OOPの概念的にはやはりエラーかどうかは当事者…というか当該オブジェクトの仕事のような気がしますし…。
どうしたらよいでしょう?
■ このスレッドは過去ログ倉庫に格納されています