python学习--异常
解决异常
如果遇到异常就踹(try)一下。我们将可能报错的代码放入try中,except来接收并处理报错。
1.try和except
try:
print(a)
except NameError:
print("有变量未定义。")
这样程序就没有报错了。NameError
为一种内置的报错类型。也可以加入else包含程序没有异常的情况下执行的语句。
try:
a = 5
print(a)
except NameError:
print("有变量未定义。")
else:
print("程序正常。")
当然不一定每次都是NameError错误,所以要想每次都捕捉到则需要最高的错误也就是Exception错误。
try:
print(a)
except Exception as e: # as e将其简化成一个变量
print("程序错误。")
多个except可以写在一起。
try:
# a = 5
print(a)
except FileNotFoundError:
print("找不到文件")
except NameError:
print("有变量未定义。")
except Exception as e: # as e将其简化成一个变量
print("程序错误。")
else:
print("程序正常。")
2.finally
在finally里的语句无论程序是否报错均会执行。
try:
# a = 5
print(a)
except FileNotFoundError:
print("找不到文件")
except NameError:
print("有变量未定义。")
except Exception as e: # as e将其简化成一个变量
print("程序错误。")
else:
print("程序正常。")
finally:
print("finally")
3.raise
raise可以主动抛出错误,在之前有提到过。
raise Exception
断言
断言类似于if,else。但不同于他们的是如果断言语句是False则会抛出错误。
assert 1 == 2 # 报错
练习
- 利用装饰器,记录函数的运行日志(如:保存传入参数,返回结果,运行时间等信息)(保存至文件或列表中)
- 打开一个只读文件,如果文件不存在,则去创建这个文件
结束语
ps:现在关注我,以后就是老粉啦!!!
下篇预告
程序报错将会终止程序运行,怎么做可以让他保留报错能力又不终止运行呢。