有时候,当我们写了一段代码,总是会出各种各样的错误。在项目中也是如此,所以会有异常处理。
异常处理就是:
我们写了一段代码,他可能会出错(溢出、访问为空等等),为了当错误出现时,不让程序立刻崩溃,而是进入别的候选界面时候(比如是否重新输入),这就是异常处理。
异常处理的语法特别简单:
try:
'正常代码'
except '错误方式' as e: #e是自己取的事件名字
'发生错误执行的代码'
else:
'正常就继续执行的代码,可有可无'
finally:
'不管有没有出错,都要执行的代码'
比如下面一个例子,列表访问超出范围:
name = [12,2,42]
try:
name[8] = 1
except IndexError as e:
print('列表操作错误')
就会提示,列表操作错误,于是会跳过这段代码继续执行下面的代码。IndexError错误指的是列表访问出错(要么访问超出,要么列表为空)。
-------------------------分割线--------------------------
当你不知道代码会出多少种错误的话,可以这样写,把错误依次写下去:
data = {}
name = [12,2,42]
try:
data['name']
name[8] = 1
except KeyError as e:
print('没有这个key',e)
except IndexError as e:
print('列表操作错误')
当然也可以把错误写在一起,但不推荐:
data = {}
name = [12,2,42]
try:
data['name']
name[8] = 1
except (KeyError,IndexError) as e:
print('不推荐使用,因为两种错误只能采用一种处理方法,而通常要对应不同的处理方法')
---------------------------分割线-----------------------------
最后是错误种类,所有错误的父类是Exception(无法判断具体是什么错误),当你吧所有你能想到会发生的错误写完之后,你最后再加上这一句,就完美了:(很多时候电脑运行也会发生未知错误)
data = {}
name = [12,2,42]
try:
data['name']
name[8] = 1
'''这里是你能想到的所有错误一一列出来'''
'''最后加上下面这句“未知错误”'''
except Exception as e:
print('未知错误') #所有错误都可以抓住,但没什么用
然后是一些常用的错误类:
最常见的可能是IndexError,KeyError(键错误),ValueError(值错误)。还有很多错误具体如下网址: