zoukankan      html  css  js  c++  java
  • 程序try-catch的绝对健壮性之嵌套

    写程序的过程中,我们对try-catch在熟悉不过了,捕获异常进行处理,以保证程序的健壮性。

    今日突发一想,如果我们catch中的代码异常了怎么办?我们做以下一种假设

    static void Main(string[] args) 
    {
        try{
            //Code A
        }
        catch{
            //Code B
        }
        finally{
            //Code C
        }
    } 

    按照我们平时经常用的,我们在Code A的位置执行出错之后,我们最后可能在Code B进行错误处理,然后可能在Code C处写错误日志。

    那么问题来了,如果我们因为某些不可预测的因素在Code B或者Code C处又出异常了怎么办?(虽然这种情况我没有遇到过,哈哈)

    那么程序员以钻牛角尖的态度实现了以下结构

    static void Main(string[] args) 
    {
        try{
            //Code A
            try{
                //Code B
            }
            catch{
                //Code C
            }
            finally{
                //Code D
            }
            //Code E
        }
        catch{
            //Code F
        }
        finally{
            //Code G
        }
    }

    按照这种结构,我们在Code F和G的位置不写任何代码(不写总不会异常吧?)或者写上绝对无错的代码,主题代码还是在Code B的位置,C的位置异常处理,D的位置写日志。

    那么,就算catch和finally异常了,也会被外层的catch捕获,这样是不是就绝对的健壮了?

  • 相关阅读:
    [Java] java中的异常处理
    Jmeter之定时器
    Jmeter之检查点
    Jmeter之集合点
    Jmeter之关联
    Jmeter之参数化
    Jmeter测试WebService接口
    Jmeter测试MySQL数据库
    Jmeter测试HTTP接口
    使用Postman对HTTP接口进行功能测试
  • 原文地址:https://www.cnblogs.com/jerryqi/p/9734455.html
Copyright © 2011-2022 走看看