我有一个令牌的代码,用 生成JWT
,如果用户成功登录,则返回到应用程序。
var token = $localStorage.token;
var base64Url = token.split('.')[1];
var base64 = base64Url.replace('-', '+').replace('_', '/');
var tokenObj = JSON.parse(atob(base64));
然后我验证令牌具有以下声明 webUserId
if(tokenObj.webUserId){...}
如果我在localstorage中替换令牌的值,我希望得到一个错误,因为它没有很好地构建,但此时我得到一个异常:
var tokenObj = JSON.parse(atob(base64));
$exceptionHandler
我在调试控制台中进入 Angular a 。
我怎样才能控制这个错误,这样我就不会从角度得到异常?
为避免错误,您可以使用块捕获异常
try...catch
tokenObj
我不确定你是否必须在外面声明变量,我想这取决于你是否拥有它,"use strict";
但以防万一那里还不错您还可以在尝试将其转换为JSON之前检查您是否在localstorage中存储了某些内容
更新: Leandro 评论的异常处理很好,但在这种情况下,在本地处理错误可能更方便,以便继续执行流程。更好的是,通过在转换之前检查值来避免错误。
您可以定义一个
factory
orprovider
与$exceptionHandler
AngularJS 中的 $exceptionHandler
http://jsfiddle.net/stever/pypdm/
这样,如果你施放一个
throw
工厂将在全球范围内控制它