错误处理(三):区分致命错误和非致命错误


任何错误处理策略中最重要的一部分,就是确定错误是否致命,

非致命错误,可以根据下列一或多个条件来确定:
不影响用户的主要任务
只影响页面的一部分
可以恢复
重复相同操作可以消除错误


致命错误,可以通过以下一或多个条件来确定:
应用程序根本无法继续运行;
错误明显影响到了用户的主要操作
会导致其他连带错误

设计良好的代码,可以做到应用程序某一部分发生错误不会不必要地影响到另一个实际上毫不相干的部分。

for(var i=0; i<mods.length; i++){
    mods[i].init();
}

表面上看,这些代码没什么问题:依次对每个模块调用init()方法。问题在于,任何模块的init()方法如果出错,都会导致数组中后续都所有模块都无法进行
经过下面都修改,就可以把所有模块都错误变成非致命的:

for(var i=0; i<mods.length; i++){
    try{
        mods[i].init();
    }catch(ex){
        //在这里处理错误
    }
}

转载于:https://www.cnblogs.com/wzndkj/p/8689894.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值