ソフトウェア開発の仕事に携わっています。「開発途上のプログラムの品質が心配なので検査して欲しい」という依頼を受けて10K行ばかりチェックしたところ、関数の返す結果値(正常に処理を完了できたか、何らかのエラーが発生したかを整数型の値で返す関数です)を9割がた未チェックのまま正常処理を続行していることが判明しました。


ぶっちゃけ、関数の返す結果値のチェックなんてしないモンですか?

オレはしている、私はしない、こーゆーケースではするけどこーゆー時はしない。いろいろな考えがあると思います。それぞれ理由をつけて答えてください。

回答の条件
  • 1人5回まで
  • 200 ptで終了
  • 登録:2009/03/06 23:51:55
  • 終了:2009/03/13 23:55:03

回答(20件)

ただいまのポイント : ポイント23 pt / 200 pt ツリー表示 | 新着順
戻り値に意味の無い場合ののぞいてすべてやります root002009/03/12 22:41:19ポイント1pt
だいたいプログラム規模の2/3はエラー処理になるとおもっております。 戻り値の判定が無い場合、確かにコーディングや単体テスト等の工数は減りますが、 後工程で戻り値を見ていない関数で問題が発生した場合、問題 ...
言語と状況により色々ですね longicorn2009/03/07 02:55:43ポイント3pt
そもそも質問のコードが何の言語かにもよるのですが…。 自分は基本は過剰にならないように、必要な部分だけチェックを行うタイプです。 仕事では組み込みが多いのでCが中心です。 printf()とかならまずチェックは ...
関数の種類とその結果反映による MyTy2009/03/12 17:24:13ポイント1pt
具体的な開発言語の表記がないので違うかもしれませんが、 「正常に処理を完了できたか、何らかのエラーが発生したかを整数型の値で返す関数」 という内容から単純に推測すると、 何らかの処理(ファンクション)で ...
バランス感覚も大切 Rinta2009/03/07 18:11:10
>自分は基本は過剰にならないように、必要な部分だけチェックを行うタイプです。 現実的な落とし所として、まあ、そうするしかないよね?という共感を覚えます。結局プログラムの中で100回関数を呼び出してそれ ...
基本的には、チェックします。 たっぷ2009/03/09 11:11:09ポイント1pt
ですが、エラーの状況によりしないで済ませることもあります。 また、質問のような状況(90%ほど、つまりほとんどがエラー処理していない)で、エラーが発生した場合に 致命的なことが起こるようならば、エラーを返す ...
Rw: 基本的には、チェックします。 たっぷ2009/03/09 11:15:12ポイント1pt
今回の質問では、 >「開発途上のプログラムの品質が心配なので検査して欲しい」という依頼を受け・・・ > と言うことなので、どういう方法かでエラー処理を入れておかないと後のにトラブルに発展しそうな予感がしま ...
エラーの内容により対応は異なると思います tezuboa2009/03/07 21:39:55ポイント3pt
C標準関数に対して考えるならば、fopenのように外的要因によりエラーとなる可能性のあるものと、memcpyのように外的要因の無いものとに分けられると思います。 前者でのエラーはエラー処理が必要。 後者でのエラーはバ ...
何のための結果値判断か Rinta2009/03/08 12:10:34
非常にボリュームのある内容ありがとうございます! ほかのエントリも読んでなんとなく思うことですが、全てはどこまでうまくいかなかった原因を追い詰めるか、そのポリシー次第で、結果値判断(エラートラップ) ...
memcpy()で補足 longicorn2009/03/08 14:57:29ポイント2pt
[http://www.linux.or.jp/JM/html/LDP_man-pages/man3/memcpy.3.html:title=memcpy()のmanページ]を見ていただければ分かりますが、戻り値は有りますが、エラーかどうかは分かりませんのでエラーチェックは必要有りません(というかチェックしよう ...
単体テストの定義 tezuboa2009/03/08 16:12:48ポイント1pt
コメントありがとうございます。 長文なので読んでもらえないのではと心配してました。 まず、お詫びとして、memcpyを例にしたのはメモリー破壊の代表であり、皆がきらう関数No1だろうという理由からでした。 id:longi ...
きっちりつけます、自分のために pkb_wn2009/03/07 01:26:17ポイント2pt
メモリアクセス違反(ポインタの戻り値がNULL)でオチるのは恥ずかしいし 他の処理(関数)でも、どこが発生原因かわからないのは、不具合調査で自分の労力が増すばかり。 PGの誤りだけではなくて、動作環境や渡 ...
実利とプライド Rinta2009/03/08 12:36:51
他のエントリでも書きましたが、「プログラマとしての気概」と後で苦労したくないという実利が原動力ですね。実利がチェックを実装するという行為に結びつくには、当事者であるという認識がないといけない。作ってい ...
単体テスト pahoo2009/03/07 08:31:35ポイント2pt
どんなシステム開発でも、それが仕事なら、[http://www.thinkit.co.jp/free/project/4/6/1.html:title=単体テスト]で戻り値のチェックはしますよ。たとえ、99.9%のケースが正常系で動いており、エラー戻り値の影響を受けることは皆無だ ...
正論! Rinta2009/03/07 17:58:17
まったくもって同意見… なんですが、私のいる世界は果てしなく醜く、トラップされないエラーが山のようにあります。品質というのは常に時間(=コスト)とのトレードオフで、かけたコストに見合った品質のものしか ...
欠陥品 pahoo2009/03/07 18:48:18ポイント1pt
自分が作ったシステムを自分自身が使うとしたら――私は、いつも、そう考えて仕事をしています。 たしかに、テスト工数はコストとのトレードオフですが、単体テストを全くやらないようなプロジェクトは欠陥品を産み ...
エラーを無視していいかどうか?は致命度によるのでは? chakoku2009/03/07 00:33:16ポイント2pt
エラー値をあつかうべきかどうか?はプログラムの重要性や エラーの致命度によると思います。 プログラム自体が内部メンバだけが使うテストプログラムであれば エラーをほっておいてもいいかもしれないし、また逆に ...
至極もっともな考えだと思います Rinta2009/03/07 01:01:39
なるほど。至極もっともな考えだと思います。ただ、一般論の域を出ていないもどかしさも感じます。こちらの質問もひじょーに抽象的な書き方をしているので、どうしても突っ込んだ意見になりにくいのは、仕方がないで ...
具体事例は? chakoku2009/03/07 08:41:21ポイント1pt
>一般論の域を出ていないもどかしさも感じます そうですね。すみません。(会社でも突っ込みが甘いと言われたり、、) もう少しフォローのリプライ書きます。 大昔、すこしまともなソフトを組んだ頃は、 チーム ...
戻値については、必要か否かはデータによると思います。 らいず2009/03/07 00:50:39ポイント2pt
テストの段階では、現実から離れたデータでもテストをすると思いますので必要だと思います。 でも、実用のレベルになってきたときに、そこまでプログラムの中でチェックをする必要があるかどうかは、その関数がどの ...
全ては相対なんですよね Rinta2009/03/07 01:22:31
結局のところ、その関数の結果値を判断していないモノに対してどの程度の信頼性が求められているのか? という、その信頼性の高低によって答えは変わってしまうんですよね。 非常に大雑把にあいまいな表現で説明 ...

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • 質問してみた まあ、せっかくはてなのポイントがあるんだし、いろんな人の話をきいてみようーということで質問を出してみました。 ソフトウェア開発の仕事に携わっています。「開発途
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません