day14-异常

it2023-09-03  81

异常

1.什么是异常

异常就是错误(程序报错就是程序出现异常) 执行程序过程中如果出现异常,程序会直接结束(实际是线程结束)

2.什么是异常捕获

异常捕获就是让程序在出现异常的时候,不崩溃继续执行

不是任何异常都可以捕获的, 只有在明知道某段代码会出现异常但是又不能或者不方便通过修改代码来 避免,这个时候就可以对异常捕获

3.怎么捕获异常

方法一:捕获代码段1中所有异常

try: 需要捕获异常的代码段-代码段1 except: 捕获到异常后悔执行的代码段 其他代码 执行过程: 先执行try里面的代码段, 执行过程中如果出现异常,程序不崩溃, 马上直接except后面的 代码值, 执行完后执行其他代码; 如果执行try里面的代码段没有穿线异常,except后面的代码不会执行,直接执行其他代码

方法二:

try: 需要捕获异常的代码段-代码段1 except 异常类型: 捕获到指定异常后会执行的代码段 其他代码 方法三:同时捕获多种异常, 做相同的处理 try: 需要捕获异常的代码段-代码段1 except (异常类型1, 异常类型2, ...): 捕获到指定异常后会执行的代码段 其他代码

方法四:同时捕获多种异常, 针对不同的异常做不同的处理

try: 需要捕获异常的代码段-代码段 except 异常类型1: 捕获到指定异常后会执行的代码段1 except 异常类型2: 捕获到指定异常后会执行的代码段2 ... 其他代码 try: age = int(input("请输入年龄")) except: print("输入不正确")

4.finally - 写遗书

try: 需要捕获异常的代码段-代码段 except 异常类型1: 捕获到指定异常后会执行的代码段1 except 异常类型2: 捕获到指定异常后会执行的代码段2 ... finally: 代码块

5.抛出异常 - 主动让程序崩溃

raise 异常类型 异常类型可以是系统异常类型也可以是自定义的异常类型

class AgeError(Exception): def __str__(self): return '年龄范围0-150' def func2(age:int): if age < 0 or age > 150: raise AgeError if age >= 18: print("成年") else: print("未成年")
最新回复(0)