0
私は以下のサービスをexception.js
スクリプトを持っています、AngularJSでカスタム例外をスローする方法は?
app.service('Joins', ['Exception', function(Exception) {
this.LEFTJOIN = function(leftArray, rightArray, joinOnLeft, joinOnRight, columnFromRightArray) {
if (!leftArray) {
throw new Exception.ArgumentUndefinedException("Left Array is not defined for LEFTJOIN!");
} else if (!rightArray) {
throw new Exception.ArgumentUndefinedException("Right Array is not defined for LEFTJOIN!");
} else if (!joinOnLeft) {
throw new Exception.ArgumentUndefinedException("Join On Left is not defined for LEFTJOIN!");
} else {
// code to do the left join.
}
}
}])
その後、私は必要な引数を定義せずに、コントローラにJoins
サービスを使用する場合:
app.service('Exception', function() {
this.ArgumentUndefinedException = function (message) {
if (!message) {
message = "One or more of the arguments are undefined!";
}
return {
name: 'ArgumentUndefinedException',
message: message
};
}
});
今、私は別のサービスでこれを使用私のカスタム例外はスローされません。コンソールに他のエラーメッセージが表示されません。テーブルには何も表示されません。私は何が間違っているのですか、または角でカスタム例外をスローする良い方法がありますか?
あなたが 'Joins.LEFTJOIN();'で引数を送らなくても、関数は呼び出され、あなたの偽の条件をチェックすることで!未定義の引数をtrueにし、最初のif節が実行されます –
これはうまくいきます。最初の引数を渡して、2番目の引数をfalseに設定しようとしました。その後、2番目の例外はスローされません。しかし、あなたは私のために何かを明らかにしました。私は最初は違う行動を期待していました。 – swdon
だから助けてくれましたか?あなたはこの答えを受け入れることができますか?または私は何かをさらに改善すべきですか? –