エラー処理は誰が、どこまで考えるべき?
【質問】ソフトウェア開発で、あるライブラリが「Xを返す」という仕様であるときに、使う側は「もしXを返さない場合」をエラー処理として組み込むべきか、その責任の線引きはどこにあるのでしょう?
2010-07-07 14:09:18これはよく悩む... RT @hkato193: 【質問】ソフトウェア開発で、あるライブラリが「Xを返す」という仕様であるときに、使う側は「もしXを返さない場合」をエラー処理として組み込むべきか、その責任の線引きはどこにあるのでしょう?
2010-07-07 14:10:54@hkato193 出切れば組み込む。ライブラリ作った相手を信頼出来ないなら絶対組み込む。Javaなら信頼以前に絶対組み込む。
2010-07-07 14:14:24@cqa02303 尻を叩いていただきありがとうございますw。ちなみに「Javaなら問答無用」と仰ったのはなぜなのでしょう?
2010-07-07 14:16:47@hkato193 標準ライブラリですら、リファレンスに載っていないExceptionが返ってくるくらい信用なら無い言語だからです。
2010-07-07 14:20:00ありがとうございます。契約による設計を調べていて疑問に思った次第です。 RT @haoyayoi: @hkato193 ライブラリのテストがなされているかどうか、ですかね。普通はmake testなりすると思うので。
2010-07-07 14:21:07@hkato193 細かすぎるチェックは生産性と品質を落すから、できれば異常動作を抽象化して始末しますけどね。
2010-07-07 14:21:33@hkato193 Javaなんて大嫌いです。10年前から言い続けています。15年前はあんまり好きじゃ有りませんでした。
2010-07-07 14:27:20@gnue あ、それは盛り込まれていますです。こういうのは状況次第だと思うのですが、多人数で開発する場合などは「誰のものか」を定めておかないと「誰のものでもない」が発生して問題が出るわけで、それに対する一般論はあるのかなあと思った次第です。
2010-07-07 14:28:43@hkato193 ライブラリって内部でエラーが発生したらとりあえずエラーコードを返すので、定義されていないエラーコードでも switch 〜 default: で対応するべきかと。戻り値のデータそのものが間違ってる場合はどうしようもないけど(^^;(^^;(^^;
2010-07-07 14:32:24@hkato193 エラーとして組み込むべきだと思います。責任の所在はライブラリの仕様次第ですね。例えば、加算のオーバーフローは、加算前に確認するより、加算後に確認した方が楽な場合があります。
2010-07-07 14:37:54@natsutan ありがとうございます!皆さんのご意見を聞いていると、やはり基本は組み込みつつも、それ以上はライブラリ次第ということになりそうですね。
2010-07-07 14:40:19@TeamMOSA2 はい。基本はそれだと思います(泣きたくないのでちゃんとやってますよー)。「重複して面倒を見る」という点をどこまでやるか、その一般解なり皆さんのポリシーなどが知りたかったのです。何でもかんでも入れ込むのは無理ですので。
2010-07-07 14:37:01@hkato193 結局のところエンドユーザーから突き上げを食らうのはアプリケーションプログラマなのでそこは絶対に譲ってはいけないと思います。ミドルウェア作る連中はそこらへんの魂が入っていないというか。
2010-07-07 14:46:02ありがとうございます! RT @TeamMOSA2: @hkato193 結局のところエンドユーザーから突き上げを食らうのはアプリケーションプログラマなのでそこは絶対に譲ってはいけないと思います。ミドルウェア作る連中はそこらへんの魂が入っていないというか。
2010-07-07 14:52:15