当前位置: 首页 > >

python处理异常的语句_python异常处理

发布时间:

异常捕获的语法


1,try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理


2,一个try语句可以对应多个expect语句,但只能对应一个finally子句,或是一个try-expect-finally复合语句


3,可以使用try-expect语句监测和处理异常,也可以添加一个可选的else子句处理没有监测到异常时的执行代码


4,finally 是不管有无错误,都会执行的代码。一般用来做清除工作


常见的错误类型


1,ValueError:传入无效的参数


2,ZeroDivisionError :除数为0(任何一个数值被零除都会引发此错误)


3,ModuleNotFoundError :找不到模块


4,TypeError : 对类型无效的操作


5,AssertionError : 断言失败


6,NameError :变量未声明或初始化


7,SyntaxError:python解释器语法错误(代码中有一个不正确的结构,改正之前程序无法运行)


8,IndexError:请求的索引超出范围


9,KeyError:请求一个不存在的字典关键字


10,FileNotFoundError:输入/输出错误(打开文件路径错误会引发此错误)


11,AttributeError:尝试访问未知的对象属性


下面一个是一个简单的异常处理的例子


num = input("请输入一个数字:")


res = 100 / int(num)


try:


res = 100 / int(num)


except: # try里面的语句报错了,执行except


# 你抓到了异常,你自己额外添加的处理


print("输入有误,请输入非0的数字!")


# 你处理完了之后,把错误又抛出给python解释器


raise


else: # try里面的语句没报错,执行else


print(res)


finally:


# 不管try里面有没有报错。最后一定会执行的代码。


print("我是一定要执行的收尾代码!")


如果知道会出现哪些错误,可以针对不同的错误做不同的处理


try:


res = 100 / int(num)


except ZeroDivisionError as e: # try里面的语句报错了


# 你抓到了异常,你自己额外添加的处理


print("输入有误!请输入非0的数字!")


print(e)


# 你处理完了之后,把错误又抛出给python解释器


raise


except ValueError as e:


# 抓到异常,额外添加的处理。这里没有 raise 表示不显示异常


print("输入有误!请输入数字类型!")


print(e)


except Exception as e:


print("其它未知错误")


print(e)



友情链接: