相关疑难解决方法(0)

JavaScript错误处理的最佳实践是什么?

我期待开始做我的JavaScript多一点错误的证明,而且我发现很多文档的使用try,catch,finally,和throw,但我不是专家在何时何地抛出错误找一吨的建议.

  • 每一段代码都应该包含在try/catch中吗?
  • 是否有更多这样的建议,在什么时候应该抓住错误?
  • 是否存在提高错误的缺点,而不是让代码在生产中无声地失败?
  • 就实现而言,这已经触及SO,但服务器日志JS错误是一种有效的策略吗?
  • 关于在我的应用程序中捕获错误,我应该知道的任何其他内容?

我也完全是因为听过有很多章节的书籍或对错误处理的深入解释而玩游戏.雄辩的JavaScript触及了这个问题,但对这个问题并没有很强的规定性或固执己见.

感谢您提出的任何建议!

javascript error-handling

128
推荐指数
4
解决办法
5万
查看次数

使用Angular.js拦截器捕获HTTP 401

我想在Angular.js的单页Web应用程序上实现身份验证.在官方文档角建议使用拦截器:

$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
  return {

    // ...

    'responseError': function(rejection) {
      // do something on error
      if (canRecover(rejection)) {
        return responseOrNewPromise
      }
      return $q.reject(rejection);
    }
  };
});
Run Code Online (Sandbox Code Playgroud)

问题是当服务器发送401错误时,浏览器立即停止"未授权"消息,或者使用登录弹出窗口(当服务器发送认证HTTP标头时),但Angular无法使用它的拦截器捕获HTTP按照建议处理错误.我误会了什么吗?我试图在网络上找到更多的例子(这个,这个这个为例),但他们没有工作.

authentication angularjs

46
推荐指数
4
解决办法
6万
查看次数

AngularJS失败的资源GET

有谁知道如何检查AngularJS中是否找不到资源?

例如:

//this is valid syntax
$scope.word = Word.get({ id : $routeParams.id },function() {
    //this is valid, but won't be fired if the HTTP response is 404 or any other http-error code
});

//this is something along the lines of what I want to have 
//(NOTE THAT THIS IS INVALID AND DOESN'T EXIST)
$scope.word = Word.get({ id : $routeParams.id },{
    success : function() {
      //good
    },
    failure : function() {
      //404 or bad
    }
});
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

javascript json angularjs

29
推荐指数
2
解决办法
2万
查看次数

从Rails的JSON响应中寻找用于Angular中的通用错误处理的范例

我正在构建一个应用程序,它被构建为一个Rails服务器应用程序,为客户端提供RESTful api.Rails服务器使用RABL.客户端是一个Angular JS客户端,执行标准的$ http调用(获取,放置等).

偶尔我的Rails服务器会产生一个错误(假设附加到对象的验证错误)甚至没有错误,在这种情况下我想向用户显示一些东西 - 错误例如,"记录没有保存,因为...... "或"记录已成功更新".

我试图在Rails端和Angular /客户端都映射出一个模式来处理这个问题.

至于Rails:

  • 我当然可以在每个RABL文件中传回一个节点来包含错误数组
  • 我还可以通过在返回之前检入控制器来返回不同的RABL
  • 大多数建议使用HTTP代码(这是有道理的),按照这里 (虽然似乎没有成为代码的一致用途的东西,像一个验证错误).

至于Angular:

我想我希望我不必在这里重新发明轮子,有人可以指出我目前使用和建议(和本地化)的模式.

api error-handling json ruby-on-rails angularjs

13
推荐指数
1
解决办法
4068
查看次数

在路由配置(Angular)中拒绝承诺时,如何重定向到404?

如果在尝试加载资源时,如果在URL中使用URL中的参数加载API,那么将客户端重定向到错误路由的最佳方法是什么?

当某人访问例如orders/1时,他们会看到订单,但如果其中一个没有访问,订单未找到或发生任何其他异常,那么最好如何处理?

angularjs angularjs-routing

3
推荐指数
2
解决办法
1万
查看次数

AngularJS.添加全局AJAX错误处理程序(如果尚未定义)

我怎么能设置全局AJAX处理程序,只有当我还没有为特定的AJAX调用定义错误处理程序时才会调用它?

如果发生错误,我的一些ajax调用确实需要做一些逻辑(例如重新启用按钮),但对于某些AJAX,我只需要在发生错误时显示错误消息.

例如,这段代码没有为AJAX调用定义任何错误处理程序,所以我想申请这个调用全局错误处理程序,我将只显示错误消息:

user.$delete().then(function () {
    // on success
});
Run Code Online (Sandbox Code Playgroud)

但是这个AJAX调用已经定义了错误处理程序,我不想对它应用全局处理程序:

    $scope.deleteButtonEnabled = false;
    user.$delete().then(function () {
        // on success
    }, function(err) {   
        // Do some stuff and then show error message     
        $scope.deleteButtonEnabled = true;        
        alert('Error' + JSON.stringify(err))
    });
Run Code Online (Sandbox Code Playgroud)

javascript ajax interceptor angularjs

1
推荐指数
1
解决办法
1782
查看次数