- VBプログラマ質問スレ(Ver.6.0 まで) part64
786 :デフォルトの名無しさん[sage]:2015/08/17(月) 14:33:27.80 ID:rLKFJTDK - >>785
だから、「画面から呼び出す関数内で適切なエラー処理」ってなんだよ? 適切かどうかは、戻り側しかわからないって言ってるだろ。 ログもそうだり、リトライするかどうかも 戻り側でしか判断できない。 お前が言ったことが呼び出し元で判断するべきだったことかもわかるように 内部で適切なエラー処理はできないから、呼び出し元に変えるのが原則。 呼び出し元って言ったらフォームのイベントハンドラ。 だから基本的に「き・ほ・ん・て・き」にフォームにのみ On Errorが存在する。フォームから呼び出されるモジュールや クラスにはErr.raiseをやっても、On Errorは存在しない。って 書いてるんだろうが。
|
- VBプログラマ質問スレ(Ver.6.0 まで) part64
787 :デフォルトの名無しさん[sage]:2015/08/17(月) 14:34:47.97 ID:rLKFJTDK - なお勝手にやるリトライの件については、
俺が>>761に書いている。 >>761 > 多くの場合、関数一つに対して、 > On Errorは全くないか、一個だけ。 > > そして基本的にフォームにのみOn Errorが存在する。 > フォームから呼び出されるモジュールやクラスには > Err.raiseをやっても、On Errorは存在しない。 > > On Errorが必要なのは、終了処理が必要な場合とか > 内部で勝手にリトライする場合とかだけだから。
|
- VBプログラマ質問スレ(Ver.6.0 まで) part64
789 :デフォルトの名無しさん[sage]:2015/08/17(月) 14:47:30.95 ID:rLKFJTDK - >>788
> いやだから、データベースの接続の話で言えば、接続スキームごとの処理なんて > 画面の関数内じゃ適切な判断はできないだろって。 画面の関数で接続スキームをい考慮する必要が無いように作るんだよ。 お前設計ってわかってるか? 適当に作って長くなったら関数に分ける 程度のことしかしてねーだろ。 > > 呼び出し元って言ったらフォームのイベントハンドラ。 > > だから基本的に「き・ほ・ん・て・き」にフォームにのみ > だからそんな基本ないし。 あ、基本的と基本の違いがわからない?
|
- VBプログラマ質問スレ(Ver.6.0 まで) part64
794 :デフォルトの名無しさん[sage]:2015/08/17(月) 19:42:56.83 ID:rLKFJTDK - >>790
だから「エラー処理」の内容はなんだよ? ログを出力するのは、関数内でやることじゃない。 リトライ処理も、関数内でやることじゃない。 お前は何をやるつもりだ? >>793 > 何階層も下で起こった例外を全部想定して適切な処理なんかできるのかよ。 「適切な処理」の内容はなんだよ? 例外っていうのは、基本的に関数内でやれることは何もない。 あくまで基本的にな。 戻り値を返すのと同じように、上に例外を返すしか することはないんだよ。 あくまで基本的にな。
|
- VBプログラマ質問スレ(Ver.6.0 まで) part64
795 :デフォルトの名無しさん[sage]:2015/08/17(月) 19:48:56.10 ID:rLKFJTDK - 俺「画面の関数で接続スキームを考慮する必要が無いように作るんだよ」
馬鹿「なるほど画面から呼び出す関数内でエラー処理しろって意味か」 何なんだろうねw
|
- VBプログラマ質問スレ(Ver.6.0 まで) part64
796 :デフォルトの名無しさん[sage]:2015/08/17(月) 19:50:38.54 ID:rLKFJTDK - >>790
> 実行時エラーやVBのランタイムエラー全てが集まるんだが。 > これでどうやって適切なエラー処理ができるのかと。 戻り値でも実行時エラーでも同じだが、 エラーの種類(エラー番号)を取得して それに応じて処理を書けばいい。
|
- VBプログラマ質問スレ(Ver.6.0 まで) part64
797 :デフォルトの名無しさん[sage]:2015/08/17(月) 19:55:59.41 ID:rLKFJTDK - >>793
> 出来るのはただ例外を捕捉することだけ。 > これも勘違いしてる奴が多いけど、そういうのを俗に「握りつぶす」って言うんだよ。 握りつぶすっていうのは、下の階層で起こった例外を 捉えて、その例外を再送出しないこと。 例外が起こっているのに、上の階層で例外が起こったことが わからなくすることを「握りつぶす」という。 殆どの場合、例外は常に上の層に戻さなければならない。 最終的にイベントハンドラがそれをキャッチして 画面・ログなどにエラーが発生したことを記録する。 例外が起きても基本的にやれることは何もないので、 フォームにのみOn Errorを書いて、 関数内ではOn Errorは必要ない。 あくまで基本的にだから、>>721にこのように書いている。 > On Errorが必要なのは、終了処理が必要な場合とか > 内部で勝手にリトライする場合とかだけだから。
|
- VBプログラマ質問スレ(Ver.6.0 まで) part64
799 :デフォルトの名無しさん[sage]:2015/08/17(月) 20:13:29.02 ID:rLKFJTDK - >>798
全くだよw On Errorなんて必要な時に書けばいいだけ。 起きた例外を下位の関数で処理することは殆ど無いのだから 俺は基本的に何も書かなくていいと言ってる。 何も書かない=コード量は少ない。
|
- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
350 :デフォルトの名無しさん[sage]:2015/08/17(月) 20:16:45.10 ID:rLKFJTDK - >>349
再帰処理のクイックソート vs 非再帰処理のクイックソート http://www.drk7.jp/MT/archives/000995.html 再帰を使わないでクイックソートは実装できるね。 しかもそっちのほうが速い
|