- PR -

Webサービスにて、クライアントに例外の種類を伝える方法

1
投稿者投稿内容
cobalt
会議室デビュー日: 2005/05/02
投稿数: 14
投稿日時: 2005-08-16 10:20
 Webサービスでとあるシステムを作っているのですが、Webサービス側で起きた例外をクライアントに通達する時、クライアントでの例外の種類の判断を皆さんはどうやって解決してますでしょうか?
 Webサービス側で色々な例外が発生してクライアント側にthrowしても、クライアント側で例外を受け取ると全てSoapExeptionになってしまいます。
 クライアントへthrowする際にSoapExceptionのDetailにXML化した例外情報を入れれば良いかなと思ったのですが、一般的に皆さんはどうやって解決しているのかを知りたくて質問しました。

 よろしければ皆さんのやり方を教えてください。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-08-16 11:35
結合を疎にするために、「伝えるべきではない」という話を聞いたことがあります。
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2005-08-16 13:12
引用:

 よろしければ皆さんのやり方を教えてください。



ざっくりとですが、

クライアントにサーバでおこった事をそのまま伝えてもしょうがないので、
「エラーメッセージ」として正常なメッセージのやり取りをクライアントと
行なう事を考えます。
cobalt
会議室デビュー日: 2005/05/02
投稿数: 14
投稿日時: 2005-08-16 17:57
にしざきさん、せんさん返信ありがとうございます。

Webサービス内で起きた例外の詳細はクライアントに公開すべきではないと言うのが一般的なのでしょうか。
他の皆さんもこういう状況の時どうするか意見がありましたらよろしくお願いします。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2005-08-17 12:02
unibon です。こんにちわ。

引用:

cobaltさんの書き込み (2005-08-16 17:57) より:
Webサービス内で起きた例外の詳細はクライアントに公開すべきではないと言うのが一般的なのでしょうか。


(これはあまり私は知識がないので分からないのですが。)

引用:

cobaltさんの書き込み (2005-08-16 17:57) より:
他の皆さんもこういう状況の時どうするか意見がありましたらよろしくお願いします。


以前、少し Web Service を使った経験から考えたのですが、Web Service の例外は、Java の RuntimeException や .NET での Exception をどう扱うかと言う議論と同じ扱いが良いように思います。
例外の内容は、おっしゃるように detail の中に XML で入れるので良いと思いますが、実行時にその内容を見て条件分けするようになったら複雑すぎて取り扱いが大変になります。そのような XML はプログラマーがデバッグするための情報として位置付けて、運用時には見ないようにしたほうが良いでしょう。したがって、プログラムで見るべきエラーは Web Method の返り値で返すことになります。
1

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