本系列定位为复习笔记,某些内容并未提及。
在此记录一些典型疑问和我在学习中的问题或经常遗忘的细节,也会添加一些觉得有意思的部分(其实就是随心所欲 )
内容主要使用代码进行传达
异常处理的两种方法
一般推荐第二种写法好一点
try - except 语句
try:
检测范围
except Exception[as reason]:
出现异常后的处理代码
捕获特定的错误
try:
f = open('test.txt')
print(f.read())
f.close()
except OSError:
print('打开文件出错')
捕获所有错误
try:
f = open('test.txt')
print(f.read())
f.close()
except :
print('出错')
捕获多项错误
try:
int("abc")
s = 1 + '1'
f = open('test.txt')
print(f.read())
f.close()
except OSError as error:
print('打开文件出错\n原因是:' + str(error))
except TypeError as error:
print('类型出错\n原因是:' + str(error))
except ValueError as error:
print('数值出错\n原因是:' + str(error))
try:
int("abc")
s = 1 + '1'
f = open('test.txt')
print(f.read())
f.close()
except (OSError, TypeError, ValueError) as error:
print('出错了!\n原因是:' + str(error))
try - except - finally 语句
final在try - except的基础上,表示不管final之前发生什么,一定会执行的语句
如果一个异常在try子句里被抛出,而又没有任何的except把它截住,那么这个异常会在finally子句执行后被抛出。
所以final一定会执行
try:
检测范围
except Exception[as reason]:
出现异常后的处理代码
finally:
无论如何都会被执行的代码
raise语句
Python 使用raise语句抛出一个指定的异常。
>>> try:
raise NameError
except NameError as reason:
print('An exception flew by!'+str(reason))
An exception flew by!