我们敲代码遇到报错,异常是很正常的。有时候我们程序报错后还是要继续接着跑,或者我们输入错误什么的报错了。为了不让程序停下来,我们就可以用到异常处理。
1.捕获异常格式一: 语法格式: try: ???? 检测的代码块 except: ???? 如果检测到异常,执行这个位置的代码
try:
a # NameError
except NameError as error: # as error相当于把异常信息保存在error里面; error是变量名,可以自定义
print(error)#name 'a' is not defined 这个 a 未定义。正常情况下我们程序报错了,这里我们写个异常处理所以没有报错
try:
print(a) # NameError
except Exception as e: # Exception是万能异常, 可以捕获任意异常
print('报错信息:', e)
2.捕获异常格式二: else在if中,条件不满足时执行的代码 try ... except ... else 中, 没有捕获到异常,那么就执行else中的代码 else是在没有异常的情况下执行的代码
# try里面的代码检测出异常,except捕获异常,执行except下面的代码
try:
print('卡布奇诺')
except Exception as e:
print(e)
print('这个是错误的!')
else:
print('这是else')
3.捕获异常格式三: finally 无论是否有异常,都会执行代码
try:
print(a)
except Exception as e:
print('这个是错误的!',e)
else:
print('这是else')
finally:
print('我是一定会运行的')
4.抛出异常:
之前的异常是python解释器发出来的,这个抛出异常是我们自己定义的。
# 1.创建一个Exception('xxx')对象 xxx代表异常提示信息
# 2.raise抛出这个对象(异常对象)
# 执行了raise语句,后面的代码不能执行
def funa():
raise Exception('抛出了一个异常')
print('jiuge') # 不会执行
funa()
|