ボボボーボ・ボクは例外処理が嫌いなんだな
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG何の例外が飛んでくるかわからないクラスなんて怖くて使えない
そもそも例外処理って大域ジャンプだろ、
そんなもの怖くて使えねーよ
0355デフォルトの名無しさん
2005/06/19(日) 23:21:33bool で true false 以外に unknown として例外を返す必要があるとは思わないのか?
OresamaFuncは正常に処理できた実行結果としてtrue falseを返す訳だから
そもそも処理自体が行えなかった場合にはunknown(処理できなかったよ)として
どういう理由で処理できなかったかの例外を関数の呼び出し元に飛ばすべきだろ。
例外発生時に「あぁ、このエラーは漏れの処理ではありうる事なんだYo」と、
呼び出し元が考えるか、「何じゃこりゃ?」と考えるかは
OresamaFancが判断すべき状況じゃないからとりあえず上に例外を投げるんだ。
そしたら、OresamaFancを呼び出した奴が例外を受け取ったときに
適切に判断してくれる(はず)ってのが例外のそもそもの考え方じゃねぇのか?
0356デフォルトの名無しさん
2005/06/19(日) 23:29:17処理が行えたらtrue で行えなかったら false っていうレベルの関数なら
無理に例外投げないで353の実装でもいいと思うけどな。
呼び出し元で
if (OresamaFunc()){
OredayoOre();
}else{
Shoboon();
}
っていう書き方できるし、そっちのほうが漏れ的には好みかな。
例外機構を使うと
try{
OresamaFunc();
OredayoOre();
}catch(OresamaError e){
Shoboonn();
}
見たいな感じで、if文を目の敵にしたのはいいが、
本質的に何も変わらないコードっつーのもなんだかなぁ。
0357デフォルトの名無しさん
2005/06/21(火) 02:12:01B「ミスも少ないですよね」
C「例外はタイピング早いですよね」
A「例外はタイピングしないよ。なあ?」
B「しませんよ、例外は」
0358デフォルトの名無しさん
2005/06/26(日) 00:32:33話になんねぇよ。Unknownって何だよ。意味わかんねぇ。
SQLやりすぎて頭おかしくなった糞コボラ?
BOOLは2値を返す。それが全て。
0359デフォルトの名無しさん
2005/06/26(日) 00:39:31失敗も含めると、結果が2値に収まらないのが問題なんだよ。
0360デフォルトの名無しさん
2005/06/26(日) 00:43:06C言語なみのバカだなw
0361デフォルトの名無しさん
2005/06/26(日) 00:44:320362デフォルトの名無しさん
2005/06/26(日) 01:00:100363デフォルトの名無しさん
2005/06/26(日) 02:07:16{
Mekuso();
Mimikuso();
Hanakuso();
}
catch
{
Apoon();
}
0364デフォルトの名無しさん
2005/06/28(火) 03:10:19try..catchしとかないとなぁ
でもやっぱ自分はthrowはしないでつねー
0365デフォルトの名無しさん
2005/07/04(月) 12:21:59try{
処理1();
処理2();
処理3();
処理4();
処理5();
}catch(Exception e){
MessageBox("エラーが発生しました。ゴメンナサイ。理由は " + e);
}
基本処理と例外処理が分離されててみやすいし、例外を見落とすこともない。
でももっと厳密な例外処理が必要になると基本処理と例外処理が入り交じって逆にわかりづらくなるのかな。
経験ないからわからないんだけど。
0366デフォルトの名無しさん
2005/07/04(月) 14:59:430367デフォルトの名無しさん
2005/09/10(土) 13:46:22最初から必要の無いシステムを後からつけたんじゃないの?
例外を含んだコードなんてものは、
例えば、参照をコードの方でnullかどうかチェックして、
nullだったら例外を返すのではなく、引数を返して、
受け取った方で、上手く行かなかった場合のコードを書くようにしたらそれで良いんだろ。
それとも、例外処理でなければ上手く処理しきれない場合ってあるのか?
知ってる人居たら教えてくれ。
0368デフォルトの名無しさん
2005/09/10(土) 14:10:570369デフォルトの名無しさん
2005/09/10(土) 15:46:58関数という単位で無理やり括るからプログラムが歪になるんだと思う
例外処理も変な制御になる
関数や分岐のネストじゃなくて
フリースタイルに地図のように表現すれば自然に記述できるんじゃないだろうか
おまえらがフローを紙に書くように、だ
0370デフォルトの名無しさん
2005/09/10(土) 15:48:310371デフォルトの名無しさん
2005/09/10(土) 16:00:06A から B を、B から C を呼び出しているとすると
B で C の戻り値をチェックし、A は B の戻り値をチェックする。
エラーの詳細内容 (メッセージ等) はまた別の手段で得る。
というのと
A で例外をキャッチしたら詳細内容も含めて入っている。
というのとでは、どっちが楽だと思う?
>>369
と思う人は、そうやって大盛りスパゲティ作ってればいいと思う。
>おまえらがフローを紙に書くように、だ
フローとてブレークダウンはしている。尤も、今時そんなもん書かないが。
0372デフォルトの名無しさん
2005/09/10(土) 16:24:340373デフォルトの名無しさん
2005/09/10(土) 16:48:03例外の内容は例外オブジェクトをメンバにもつEventArgで通知。
これってやっぱり異端かなあ。
でも楽でいいんだよねえ。VB.NETだと特にイベント扱うの楽だから。
0375名無しさん@そうだ選挙に行こう
2005/09/11(日) 05:41:56言いたいことはわかる。
グラフ構造で表現できればすっきりするだろうね。
0376マイク ◆yrBrqfF1Ew
2005/09/11(日) 06:49:25無いな。
0377名無しさん@そうだ選挙に行こう
2005/09/11(日) 12:12:26って方言でなんかエロい言葉なの?
0378名無しさん@そうだ選挙に行こう
2005/09/11(日) 14:39:05単に>1が消防なだけ。
0379名無しさん@そうだ選挙に行こう
2005/09/11(日) 16:48:58エラー コードを返したり、グローバル変数の設定したりすることと
同レベルだと思ってはいけません。例外は、それを取り巻くコードの
構造と意味を、根底から覆します。例外は、プログラムの実行時
セマンティックを一時的に繋ぎ変え、通常実行しているコードを迂回し、
こういう状況でなければ決して実行されないコードを動作させます。
例外は、エラー状態を認知させ、プログラムの死という罰則を用いて
その状態を改めようとします。
このように、例外には単純なエラー処理を超えた特性があります。
これらの特性を必要としない、理解しない、あるいは文書化したく
ないなら、例外をスローしてはいけません。
例外以外のエラー処理技法を探してください。
0380デフォルトの名無しさん
2005/09/11(日) 23:53:57山下清画伯だとおもうが
0381デフォルトの名無しさん
2005/09/12(月) 14:02:47福岡とか熊本あたりかな。
メメジョってのは鹿児島だっけ?
0382デフォルトの名無しさん
2005/09/16(金) 02:48:28↓のスレを読めばどんなに偉大な言葉か理解出来るかも。
http://comic6.2ch.net/test/read.cgi/csaloon/1122393817/l50
0383デフォルトの名無しさん
2005/09/20(火) 20:52:02例外は、無くても良いものを後から無駄につけただけ。
0384デフォルトの名無しさん
2005/09/20(火) 20:57:34特にC++の例外機構は欠陥だらけなので。
他の言語だったら大丈夫なケースはあるかと。
0385デフォルトの名無しさん
2005/09/20(火) 22:28:29だから例外をよく理解できない自分は悪くない、ということにしたいのですね。
0386マイク ◆yrBrqfF1Ew
2005/09/21(水) 02:54:51初耳です;)
0387デフォルトの名無しさん
2005/09/21(水) 13:38:250388デフォルトの名無しさん
2005/09/21(水) 13:41:24>その一方で EH でいくつかの意図的でない深刻な結果が生じるということも
>疑いません。しかし、筆者は C++ 規格の作成者らに先見の明がないと言っ
>て責めるのではなく、効果的な例外処理を設計して実装することがどれだけ
>難しいかということを心に留めています。
遠まわしに欠陥だらけと言ってる。
0389デフォルトの名無しさん
2005/09/21(水) 14:11:51・型が弱い。関数プロトタイプに許容する例外クラス木を列挙指定できない。
>>388
C++にも欠陥はあるが、例外処理そのものが難しいことも忘れてはいけない。
と言っているように読める。
0390デフォルトの名無しさん
2005/09/22(木) 04:02:43> ・型が弱い。関数プロトタイプに許容する例外クラス木を列挙指定できない。
これは関数の例外仕様のこと? int f() throw exception; // ←コレ?
例外仕様が無いことは欠陥とは言い切れないよ。
0391デフォルトの名無しさん
2005/09/22(木) 06:09:22後発のC#では削除されている。
0392デフォルトの名無しさん
2005/09/22(木) 07:35:26どのあたりが欠陥なのか簡単に説明してくれるかな?
0393デフォルトの名無しさん
2005/09/22(木) 08:52:54そこでContinuation渡しですよ。
0394デフォルトの名無しさん
2005/09/26(月) 21:41:54実現イメージは出ないけど、continuationみたいなのは結構いいかもしんない
Javaのexceptionより、system call の返り値のerrnoを見るほうが好きな俺は
比較的賛成だ
うまく例外処理コードを通常処理コードと分離(隠蔽)出来るといいんだがなあ・・
0395デフォルトの名無しさん
2005/10/23(日) 12:26:21C#のthrows削除は欠陥仕様。
先発のJavaの利点を殺している。
0396デフォルトの名無しさん
2005/10/23(日) 13:25:49throwsを書かないようにするのが、今の流れだと思っていたが。
0397デフォルトの名無しさん
2005/10/23(日) 14:08:38細かくチェックさせることもできる。
0398デフォルトの名無しさん
2005/10/23(日) 18:49:49意味ねーじゃんw
ちゃんと例外設計しろよw
0399396
2005/10/23(日) 20:47:20Hibernate 3.x からは unchecked例外になった。
Springの例外も、すべて RuntimeException を継承している。
詳しくは Expert One-On-One J2EE Design and Development を参照してくれ。
0400ハーピィ
2005/10/23(日) 23:11:310401デフォルトの名無しさん
2005/10/27(木) 00:45:02の違いが解っていない人多いよね
C++もこの違いを意識して書けば、これほど便利なものは無いのに
先ずはExceptionの設計をしないで使ってる事が問題
0402デフォルトの名無しさん
2005/10/31(月) 14:53:590403デフォルトの名無しさん
2005/11/01(火) 00:16:270404デフォルトの名無しさん
2005/11/03(木) 00:24:15格闘してる開発部隊がいたの思い出した
テストとか見ていて、ちょっと気の毒だった
0405デフォルトの名無しさん
2005/11/03(木) 02:55:06無責任な例外送出は迷惑極まりない。>>379でほとんど言われてしまったけど。
■ このスレッドは過去ログ倉庫に格納されています