1,try…except
(1) 关注是否会引起异常的语句放在try段;
(2) 根据异常的不同,except可以有多个分支;
(3) 可以有一个else分支,表示没有异常发生。
例如:
2,raise
(1) 假如在try部分有条件分支,而分支里可能出现异常,可以用raise来提取异常;
(2) raise处理的异常,应该是Exception的一个子类。
例如:
3,try…finally
在try里面索取资源,在finally里面释放资源。这样即使发生异常,也可以保证资源被正常释放。
例如:
上面例子中,即使出现异常,程序退出前finally语句会被执行,文件可以被正常关闭。
4,with
可以用with达到与try…finally相同的效果。
例如:
with隐含的功能是,假设open返回的句柄是thefile,每次执行with下面的block时,都会调用thefile.entry,每次退出时,都会调用thefile.exit。