异常处理

1,try…except

      (1) 关注是否会引起异常的语句放在try段;

      (2) 根据异常的不同,except可以有多个分支;

      (3) 可以有一个else分支,表示没有异常发生。

      例如:

      image

2,raise

      (1) 假如在try部分有条件分支,而分支里可能出现异常,可以用raise来提取异常;

      (2) raise处理的异常,应该是Exception的一个子类。

      例如:

      image

3,try…finally

      在try里面索取资源,在finally里面释放资源。这样即使发生异常,也可以保证资源被正常释放。

      例如:

      image

      image

      上面例子中,即使出现异常,程序退出前finally语句会被执行,文件可以被正常关闭。

4,with

      可以用with达到与try…finally相同的效果。

      例如:

      image

      with隐含的功能是,假设open返回的句柄是thefile,每次执行with下面的block时,都会调用thefile.entry,每次退出时,都会调用thefile.exit。

posted on 2017-07-18 15:33  freshair_cn  阅读(172)  评论(0编辑  收藏  举报

导航