2011-09-16 11 views
0

私は正確に例外を処理するのかと思っていましたか?それはサービス層またはコントローラにありますか?例外を処理するが、どこに?サービスレイヤまたはコントローラ

サービスレイヤでエラーが発生し、このエラーが何らかの形でユーザーに表示されなければならない場合はどうすればいいですか?

EDIT

ことがAuthentificationServiceを通って、私は、ユーザーに指示する必要があり、ユーザー名とパスワードのdoesntが一致していることに行く場合、私は..コンテキストで、ユーザはユーザ名とパスワードを指定する必要がアカウントを持って、説明します。どのようにこのシナリオを扱う?サービス層は例外をスローしますか?

ありがとうございました。

答えて

2

例外によって異なります。

いくつかの例外については、ログに記録して実行してください。他の人には、何かについてユーザーに知らせたいと思うでしょう。

私は最近、いくつかのWebサービスに依存する社内アプリケーションでした。 Webサービスが応答しないとき、アプリケーションは動作しません。

このシナリオでは、WebExceptionがスローされます。これを使用して、この時点でサービスが動作しないことを通知します。

この場合、私はサービスレイヤーで例外を処理します。また、チェーン内で例外を処理してコントローラに反応させることができます。

+0

@Jamie_Dixon私が説明すると、ユーザーがユーザー名とパスワードを指定する必要があるアカウントをコンテキストに持ってくる。もしAuthentificationServiceを通過し、ユーザー名とパスワードが一致しない場合、ユーザーに伝える必要がある。このシナリオ?サービス層は例外をスローしますか? – Rushino

+1

このコンテキストは、例外の適切な場所ではありません。ユーザーが無効な資格情報を入力する可能性があることを非常に正確に知ることができ、この状況は「例外的」ではありません。この場合、私はあなたのサービス層があなたのコントローラに何かを返すようにしたいと思います。そこからユーザーが見るものを判断できます。 –

+0

ありがとうたくさん!例外的に最初の点を逃した – Rushino