2016-09-20 1 views
0

私はシングルページアプリケーション(SPA)として動作しているAngualrJSアプリケーションを持っています。このSPAは、既存のRails APIを使用して、データベースからJSONとしてエントリを返すxhrリクエストを作成しています。データベースエントリとAngularJSの削除。エントリを削除できない場合は例外をスローする必要がありますか?

私は、現在、考えられるサーバー応答を処理するためのコードをいくつか記述しようとしています。最初に気になったのは、1対多の関係を持つエントリを削除する要求でした。例:

def Library < ActiveRecord::Base 
    has_many books 
end 

私のRailsモデルですか?私の場合は、現在書籍を持っていればライブラリを破壊することはできません。コントローラは、何らかの適切なステータス(おそらくレスポンスヘッダのフラグ)で応答します。次にビューは、図書館に書籍がまだあり、図書が削除されるまで削除できないというメッセージをユーザに応答する。

私の質問は例外処理です。私が言い換えると、言い換えれば次のようになります。

例外は例外です。

私は結論として、これは例外的なケースではないはずです。なぜなら、ユーザーは時折、書籍付きのライブラリを削除しようとするためです。さらに、プログラムはこれを説明し、この場合に備えてメッセージを用意しています。私はこれを例外と見なさないのは正しいのですか?

AngularJSに深く関わっている方のために、実際にいつ実際に例外を使用しますか?また

は、私はそれがために私が使用していますXHRリクエストの非同期性の私はドン」にまだ新しいよなど.then.catch$q.rejectで例外を処理するために約束を - 連鎖することに注意することが重要だと思いますその例外との関係を完全に理解していない。

答えて

0

私は例外としてこれを処理しません。私の方法は、サーバー側の警告レベルでログに記録し、クライアント側のビューにエラーメッセージを表示することです。

私はエキスパートとは思えませんが、プロダクションアプリケーションの場合、クライアント側では例外を表示するべきではないと考えています。

あなたのようにエラーが考えられる場合は、エラーメッセージが表示されます。 あなたのメソッドにアンカーされ、通常の使用中に起こらないようなケースでのみ表示される場合は、例外をスローして何が起こったのかを知る必要があります。しかし、あなたはまた、ユーザーのためのビューにいくつかのフィードバックを表示する必要があります。

関連する問題