发布于2020-02-24 23:45 阅读(721) 评论(0) 点赞(21) 收藏(4)
在Python中如果错误信息以 “SyntaxErrot” 开头,这就说明这是一个语法错误
程序语法正确,但是在运行中发生一些意向之外的错误。运行时检查到的错误被称为异常
(按下ctrl+c 组合键停止程序)
while True:
try:
number = int(input("请输入一个数字:"))
except ValueError:
print("您输入的不是有效数字!请重试")
这个程序使用了两个新关键字 : try和except。这两个关键字用于捕获异常并让我们运行相应 的代码去处理异常。typ-except语法如下
try:
业务语法快
except 异常类型:
处理异常语法快
在try业务语法快中,产生任何异常都会终止业务语法快并跳到 except 匹配异常类型。如果匹配的上,则运行处理异常的语法快,否则程序就会报错退出,例如:
while True:
try:
number = int(input("请输入一个数字:"))
except KeyError:
print("keyError")
except ValueError:
print("ValueError")
except keyboardInterrupt:
print("用户终止 退出程序")
exit()
except Exception as e:
print("未知错误",e)
有多个except,那么会逐个匹配except后的异常类型,如果匹配到则运行相应的处理下异常语法快,大部分的异常都是从Exception这个父类继承过来的,如果匹配的异常类型是这个,就总是可以匹配到所有异常。
在Python中我们可以主动抛出异常,可以使用 raise语句 在Python中抛出一个指定异常。如:
raise Exception("这是错误信息")
在抛出异常的时候就会有错误提示 在手动抛出异常后 我们可以使用这种方法来提示用户程序哪里出了问题。
Python中 finally子句需要和try子句一起使用。finally子句在异常处理中的作用是:无论是否有 异常或是捕获了异常,finally子句都会保证执行,例如:
try:
print(1/0)
except ZeroDivisionError:
print("除0错误")
finally:
print("finally子句")
执行结果:
除0错误
finally子句
由此可见 程序在捕获到“ZeroDivisionError”之后任然会执行finally子句中的代码。
try:
print(1/0)
except ValueError:
print("除0错误")
finally:
print("finally子句")
执行结果:
finally子句
报错:Traceback (most recent call last):
File “D:/python练习/2月18日.py”, line 2, in
print(1/0)
ZeroDivisionError: division by zero
当异常错误时,except并不能捕获相关的异常,程序报错退出,当仍然可以执行finally子句中的代码,无论是否发生异常,finally子句都会被执行。这个特性在数据库和文件处理中相当有用
作者:mimi
链接:https://www.pythonheidong.com/blog/article/232852/42bd3e07a6567cae9cd5/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!