#能够预料到的异常可以这样做 try : print() #执行这段代码有没有出错,如果有出错 # except SyntaxError as e: ###SyntaxError错误类型的代码 # print() # ###as e 代表获取到误后的结果 # ##如果try:这里执行多个结果有的错误,还可以 多加: # except IndexError as e: # print("") ###也可以这样: except (SyntaxError,IndexError) as e: print() ##这样写的话,你就不会知道那一句代码出错了 except Exception as e: print("未知错误,也就是全部错误都可以检测到") else: print("全部没有错误的情况下会执行这个") finally: print("不管有没有错误都会执行")
python2版本语句:
try: pass except IOError ,var: pass #IOError:是代码错误类型,也就是文件类型 #var:给这个错误类型命名为var
pyrhon3版本语句:
try: passexcept IOError as var: pass##IOError:是代码错误类型,也就是文件类型#var:给错误类型命名为var
使用多条except
子句可以指定多个异常代码块
如下所示:
try: pass except IOError as e: #处理I/O错误 except TyprError as e: #处理类型错误 except NameError as e: #处理名称错误
#处理程序也可以捕捉多种y异常类型,例如: try: do something except (多种类型,用逗号隔开) as e: ##使用pass语句可以直接忽略异常,例如: try: do something except IOError as e: pass
#如果要捕捉除与程序相关异常之外的所有异常,使用Exception: try: do something except Exception as e: pass ###如果使用此语句的话,调试与维护起来超级费力,但是可以用来捕捉未知错误,但是要放在最后来执行
#try也是支持else语句,它必须跟在最后一个except语句后面。如果try没有引发异常,就会执行else语句: try: f = open("文件名","") except IOError as e: pass else: data = f.read() f.close()
finaly语句为try代码块中定义了结束操作 f = open("文件名称","") try: ##pass finaly: f.colse() finaly语句不是为了捕捉错误,相反,无论前面发生了什么错误都会执行完finely代码