Python基础入门:从变量到异常处理--阿里云天池Day3
一、学习内容概括
学习地址:https://tianchi.aliyun.com/s/77b6f6a4bb79399b5fa536e511f8fcf5
今天主要学习的内容有:异常处理
二、具体学习内容
异常就是运行期检测到的错误。计算机语言针对可能出现的错误定义了异常类型,某种错误引发对应的异常时,异常处理程序将被启动,从而恢复程序的正常运行。
1 Python标准异常总结
2 Python标准警告总结
3 try-except语句
try:
f = open('test.txt')
print(f.read())
f.close()
except OSError as error:
print('打开文件出错\n原因是:'+str(error))
结果:
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))
结果:
dict1 = {'a':1,'b':2,'v':3}
try:
x = dict1['y']
except LookupError:
print('查询错误!')
except KeyError:
print('键错误!')
else:
print(x)
结果:
dict1 = {'a':1,'b':2,'c':3}
try:
x = dict1['y']
except KeyError:
print('键错误')
except LookupError:
print('查询错误')
else:
print(x)
结果:
try:
s = 1+'1'
int("abc")
f = open('test.txt')
print(f.read())
f.close()
except (OSError,TypeError,ValueError) as error:
print('出错了!\n原因是:'+str(error))
结果:
4 try-except-finally语句
eg: 如果一个异常在try子句里被抛出,而又没有任何的except把它截住,那么这个异常会在finally子句执行后被抛出。
def divide(x,y):
try:
result = x/y
print("result is",result)
except ZeroDivisionError:
print("dibision by zero!")
finally:
print("executing finally clause")
divide(2,1)
divide(2,0)
divide("2","1")
结果:
5 try-except-else语句
try:
fh = open("testfile.txt", "w")
fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
print("Error: 没有找到文件或读取文件失败")
else:
print("内容写入文件成功")
fh.close()
结果:
注意:
else语句的存在必须以except语句的存在为前提,在没有except语句的try语句中使用else语句,会引发语法错误。
6 raise语句
try:
raise NameError('HiThere')
except NameError:
print('An exception flew by!')
结果:
三、学习总结
通过这次学习,对python的异常类型进行了系统的了解和掌握,对基本的知识有了系统的梳理。