zoukankan      html  css  js  c++  java
  • 错误处理(三):区分致命错误和非致命错误


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

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


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

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

    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){
            //在这里处理错误
        }
    }
  • 相关阅读:
    CSU1784
    HDU 6128 Inverse of sum(数学)
    容斥原理入门
    HDU 6129 Just do it(规律)
    HDU 6140 Hybrid Crystals(zz)
    HDU 6143 Killer Names(排列+容斥,dp)
    zzuli 2177 Contest
    zzuli 2180 GJJ的日常之沉迷数学(逆元)
    除法逆元入门
    乘法逆元数论篇
  • 原文地址:https://www.cnblogs.com/wzndkj/p/8689894.html
Copyright © 2011-2022 走看看