代码之家  ›  专栏  ›  技术社区  ›  Falmarri

异常中如何处理作用域

  •  2
  • Falmarri  · 技术社区  · 14 年前

    C++, python, Java . 这就是我的意思:

    
            try:
                for k, v in map.iteritems():
                    cnf.conf.set( section, k, v )
                for i, j in map2.iteritems():
                    dosomethingelse()
                    for m in range(10):
                        morestuff()
            except SpecificError:
                vars = (k, v, i, j, m)
            finally:
                vars in scope #?
    

    或者更复杂的东西,比如嵌套块:

    
        try:
            try:
                for k, v in map.iteritems():
                    cnf.conf.set( section, k, v )
                for i, j in map2.iteritems():
                    dosomethingelse()
                    for m in range(10):
                        morestuff()
            except SpecificError:
                vars = (k, v, i, j, m)
        except:
            vars in scope #?
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   RMorrisey    14 年前

    执行以下操作:

    try {
     String s = "Hello, finally!";
     ...
    }
    finally {
     System.out.println(s);
    }
    

    String s = null;
    
    try {
     s = "Hello, finally!";
     ...
    }
    finally {
     System.out.println(s);
    }
    

    HTH公司