- PR -

C# 戻り値の型を動的に変更することは可能ですか?

投稿者投稿内容
nodera
大ベテラン
会議室デビュー日: 2003/09/08
投稿数: 200
投稿日時: 2005-05-24 09:55
こんにちは。

>『.NET エンタープライズ Web アプリケーション開発技術大全 Vol.3 ASP.NET 応用編』

本屋で立ち読みしてきました(買う金がなかった。。がっくし;;

さらりとしか読んでないので、内容については言及しませんが、南部さんの主張されていることが、大体書いてあったかと思います。

で、4章に「CLRのデザインルール」と書かれており、そのページの欄外にその元ネタになっているMSDN(だったかな?)のURLが載っていたかと思います。すみませんが、どなたかそのURLを教えてもらえないでしょうか?メモってこなかったんで。どのドキュメントか一度参照してみたいと思います。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-05-24 22:47
> そのURLを教えてもらえないでしょうか?
これですね。
例外処理の実施
.NET における例外管理

_________________
nanbu
大ベテラン
会議室デビュー日: 2004/08/19
投稿数: 178
投稿日時: 2005-05-25 04:33
引用:

Jittaさんの書き込み (2005-05-23 21:39) より:

いやだから、そのエラーが「業務的か否か」の基準が欲しいんだって(^^;。データベースが動いていて当然と考えるのか、「マシントラブルやメンテナンス、その他なんやかんやで接続できない状況もあり得るが、数秒後あるいは簡単に行える行為によって回復可能かもしれない」と考えるかは、その設計者が出会ったトラブルの量や種別によって違ってくると思うんだけどなぁ。。。



南部です。

エラーに関しての業務的か否かの基準ですが、
「業務的か」、「想定範囲内か」という言葉自体に絶対的な基準はないです。
さらに、同じエラーでも処理のスコープによって変化するため、

  • 設計時に「業務エラー」と「アプリケーション/システムエラー」の分類を的確に行い、その上で実装しなければならない。
  • 状況によって、「業務エラー」を「アプリケーション/システムエラー」に切り替えたり、「アプリケーション/システムエラー」を「業務エラー」に切り替えるコードが必要になる場合がある。

のような解説になっていると考えました。


 「上司から買い物を頼まれた」という簡単な日常での例で、
 「売り切れだった」というエラーが発生した場合。   

@上司から、「売り切れだった場合は、取り寄せてもらってくれ」などの
「売り切れ」に対する指示がなかった場合、部下にとってこのエラーは
「想定範囲外」として上司に「例外」として報告します。
勝手に「取り寄せてもらう」などの業務エラールートを作成してはいけません。

A上司から、「売り切れだった場合は、教えてくれ」という指示があった場合、
これは、業務エラーとして、「売り切れでした」という「戻り値」を返します。
きっと上司が業務エラールートを用意してくれているでしょう。

B上司から、「在庫を電話で確認してから、買ってきて」と言われた場合、
在庫は確認済みなのに「売り切れ」発生、、、「例外」をスロー!!します。
在庫確認での「売り切れ」は業務エラールートがあり、想定範囲内です。
(確認後、上司の指示を仰ぎます)
でも、実際に買いに行った時に発生した「売り切れ」はこのスコープでは、
「例外」です。部下は「例外」報告するしかできません。
(クラスライブラリのデザインではこの実装が推奨されているはず、、)

C上司から、「買ってきて」以外の指示がなかった場合、
「売り切れ」でしたが、この店は1日に数回入荷するので、
30分くらい待ってみることにしました。
品物が届くかもしれませんが、そうでない場合は「例外」を報告します。
(実際はAで上司に報告後、指示があったら待つでしょう)

業務エラールートの作成はアプリケーションによって異なりますし、
どの実装が適切かの判断はやはり人によりますね。
かなりこじつけで、、すみません。

たとえ、設計時にすべてのエラーが想定できたとしても、
「例外」として扱うところ、「業務エラー」として扱うところは
それぞれの役割・責任範囲により適切に分類・実装を行う必要が
あるという認識です。

スキルアップ/キャリアアップ(JOB@IT)