在脚本发生异常的时候我们需要捕获处理它,不然程序会终止。
当开始一个try语句后,python就在当前程序的上下文中做标记,这样当异常出现后就会回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。
1.当try后的语句执行时发生异常,python九条回到try并执行第一个匹配该异常的except子句,异常处理完毕,如果不再发生异常,那么控制流就通过整个try语句。
2.如果没有匹配的except子句,异常被递交到上层的try,或者到程序的最上层将程序结束并打印错误信息。
不带异常类型,比较显而易见。
但是以上的方法,我们不能通过该程序识别出具体的异常信息。
可以用异常类型来做出这样一种形式。
紧跟with后的语句被求值后,返回对象的__enter__方法被调用,这个方法的返回值将被赋值给as后的变量。
当with后的代码块全部被执行后,将调用前面返回对象的__exit__方法。
exit()中除了self还有三个参数exc_type,exc_val,exc_tb分别代表异常类型,异常值和追溯信息。
另外注意到名为repr的函数,可以将对象转化为供解释器读取的形式。返回值是一个对象的string格式(万物转字符串)。