python 异常处理

#能够预料到的异常可以这样做
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.x和Python3.x的区别:

python2版本语句:

try:
    pass
except IOError ,var:
    pass
#IOError:是代码错误类型,也就是文件类型
#var:给这个错误类型命名为var

pyrhon3版本语句:

 try:    passexcept IOError as var:    pass##IOError:是代码错误类型,也就是文件类型#var:给错误类型命名为var

Python2和Python3 except 语句的区别就是Python2用逗号隔开给错误类型命名,而Python3使用as来命名的

使用多条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代码

 

posted @ 2018-05-03 17:33  Caionk  阅读(198)  评论(0编辑  收藏  举报