f = open('test.txt','r') #以读模式打开文件,文件不存在则报错
- #需求:尝试打开test.txt(r),如果文件不存在,只写方式打开 w
- try:
- 可能发生错误的代码
- except:
- 如果出现异常执行的代码
- try:
- f = open('test.txt','r')
- except:
- f = open('tst.txt','w')
- try:
- 可能发生错误的代码
- except:
- 如果捕获到该类型异常执行的代码
- try:
- print(num) #未定义num
- except NameError:
- print('有错误') #当捕获到异常后执行的代码
- try:
- print(1/0)
- except (NameError,ZeroDivisionError):
- print('有错误')
- try:
- print(1/0)
- except (NameError,ZeroDivisionError) as result:
- print(result) #print(result)
- Exception是所有程序异常类的父类。
- try:
- print(num)
- except Exception as result:
- print(result) #name 'num' is not defined
- try:
- print(1/0)
- except Exception as result:
- print(result) #print(result)
- else:
- print('我是else,是没有异常的时候执行的代码')
- #需求:尝试打开test.txt(r),如果有异常,最终关闭文件
- try:
- f = open('test100.txt','r')
- except Exception as e:
- f = open('test100.txt', 'w')
- finally:
- f.close()
- import time
-
- try:
- f = open('test.txt')
- #尝试循环读取内容
- try:
- while True:
- con = f.readline()
- #如果读取完成退出循环
- if len(con) == 0:
- break
- time.sleep(3)
- print(con)
- except:
- #在命令提示符中如果按下Ctrl+c结束
- print("程序被意外终止")
- except:
- print('该文件不存在')
- #1.自定义异常类, 继承Exception,魔法方法有init和str(设置异常描述信息)
- 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():
- #2. 抛出异常:尝试执行:用户输入密码,如果长度小于3,抛出异常
- try:
- password = input('请输入密码:')
- if len(password) < 3:
- #抛出异常类创建的对象
- raise ShortInputError(len(password),3)
- # 3. 捕捉该异常
- except Exception as result:
- print(result)
- else:
- print("没有异常,密码输入完成")
-
- main()
- try:
- 可能发生异常的代码
- except:
- 如果出现异常执行的代码
- else:
- 没有异常执行的代码
- finally:
- 无论是否异常都要执行的代码
- except 异常类型:
- 代码
-
- except 异常类型 as xx:
- 代码
- #1.自定义异常类
- class 异常类名(Exception):
- 代码
-
- #设置抛出异常描述信息
- def __str__(self):
- return ...
-
- #2. 抛出异常
- raise 异常类名()
-
- # 3. 捕捉该异常
- except Exception...