一、写法
python
try:
可能发生错误的代码
except:
如果出现异常执行的代码
python
try:
f=open('test.txt','r')
except:
f=open('test.txt','w')
二、捕获指定异常
python
try:
可能发生错误的代码
except:
如果捕获到该异常类型执行的代码
python
try:
print(num)
except NameError:
print('有错误')
1.如果尝试执行的代码异常类型与要捕获的异常类型不一致,则无法捕获异常
2.一般try下方只放一行尝试执行的代码
python
try:
print(1/10)
except(NameError,zeroDivisionError):
print('有错误')
当捕获多个异常时,可以把要捕获的异常类型名字 放到except后,并使用元组 的方式进行书写
(1)捕获异常描述信息
python
try:
print(num)
except(NameError,zeroDivisionError) as result:
print(result)
(2)捕获所有的异常
Exception:所有程序异常类的父类
python
try:
print(num)
except Exception as result:
print(result)
三、异常的小部分
1.异常的else
else表示为如果没有异常要执行的代码
python
try:
print(1)
except Exception as result:
print(result)
else:
print('我是else,我是没有异常时要执行的代码')
2.异常的finally
finally表示为无论是否异常均要执行的代码
python
try:
f=open('test.txt','r')
except Exception as result:
f=open('test.txt','w')
else:
print('无异常')
finally:
f.close()
四、异常的传递
python
import time
try:
f=open('test.txt')
try:
while True:
content=f.readline()
if len(content)==0:
break
time.sleep(2)
print(content)
except:
print('意外终止了读取数据')
finally:
f.close()
print('关闭文件')
except:
print('没有这个文件')
五、自定义异常
python
#模拟输密码系统,密码不足3位/错误报异常
class ShortInputError(Exception):
def _init_(self,length,min_len):
self.length=length
self.min_len=min_len
def _str_(self):
return f'请输入你要输入的长度为{self.length},不可以少于{self.min_len}个字符'
def main():
try:
con=input('请输入密码:')
if len(con)<3:
raise ShortInputError(len(con),3)
except Exception as result:
print(result)
else:
print('密码输入完成')