如何在AngularJS中捕获/处理后端异常

时间:2015-06-28 13:04:10

标签: javascript angularjs spring-mvc spring-security

我正在尝试通过使用Spring MVC-Spring Security-AngularJS构建一个小型webapp来学习AngularJS。我的UserDetailsS​​ervice在登录时抛出UserNotFoundException。但我不知道如何处理Angular中的异常。我试过谷歌,但找不到关于异常处理的简单,完整的例子。

这是我的身份验证角度模块的一部分:

{{1}}

如何在错误回调函数中找到并捕获此特定的UserNotFoundException?

2 个答案:

答案 0 :(得分:2)

我建议您在控制器中创建@ExceptionHandler,然后在UserNotFoundException中再添加两个字段(errorMessageerrorCode)。然后在您的角度回调中,您可以检查哪个是errorCode号码。

好文章:

对于高级错误处理,我建议您执行此操作:https://github.com/jirutka/spring-rest-exception-handler

以下是您案例的示例:http://jsfiddle.net/bkUEu/1044/

答案 1 :(得分:0)

在你的应用程序中,angularjs尝试使用这个

$http.get('user', {
                    headers : headers
                }).then(function(data) {
                    if (data.name) {
                        auth.authenticated = true;
                    } else {
                        auth.authenticated = false;
                    }
                    callback && callback(auth.authenticated);
                    $location.path(auth.path==auth.loginPath ? auth.homePath : auth.path);
                }).catch(function() {
                    auth.authenticated = false;
                    callback && callback(false);
                });

使用then和catch函数而不是成功和错误。