python异常处理机制try-except,常见异常类型,raise关键字

python异常处理

1.在Python中,异常处理是一种用于管理运行时错误的机制。当Python脚本遇到无法继续执行的情况时,它会引发一个异常。Python的异常处理主要通过try、except、else、finally和raise等关键字来实现

2.异常处理时,你可以使用try块来包裹可能引发异常的代码,然后使用except块来捕获并处理这些异常。你可以指定要捕获的异常类型,或者使用except Exception as e捕获所有继承自Exception的异常。使用else块可以处理没有异常发生时的情况,而finally块无论是否发生异常都会执行,通常用于清理资源
结构如下:
在这里插入图片描述
3.异常类型包括:
Exception:所有异常的基类。
ArithmeticError:与算术运算相关的所有异常的基类。
ZeroDivisionError除法运算中除数为0时引发。
OverflowError:算术运算结果太大,无法表示时引发。
FloatingPointError:浮点运算错误时引发。
AssertionError:断言语句失败时引发。
AttributeError:尝试访问一个对象不存在的属性时引发。
EOFError:没有更多的数据可读时引发,通常与输入操作有关。
ImportError:导入模块或包失败时引发。
IndentationError:缩进错误时引发,属于SyntaxError的子类。
IndexError:索引超出序列(如列表、元组等)的范围时引发。
KeyError:尝试访问字典中不存在的键时引发。
KeyboardInterrupt:用户中断执行(通常是Ctrl+C)时引发。
LookupError:与查找相关的所有异常的基类。
NameError:尝试访问一个未定义的局部变量时引发。
UnboundLocalError:试图访问一个未被赋值的局部变量时引发,该变量在函数或方法的作用域内。
MemoryError:内存不足时引发。
OSError:操作系统错误,所有I/O相关的错误都继承自这个类。
FileNotFoundError(Python 3.x):尝试打开不存在的文件时引发。
IOError(在Python 3.x中已重命名为OSError,但在向后兼容的代码中仍可能遇到)。
ReferenceError:弱引用尝试访问一个已经不存在的对象时引发。
RuntimeError:一般运行时错误。
NotImplementedError:抽象方法或接口中未实现的方法被调用时引发。
SyntaxError:Python语法错误时引发。
SystemError:解释器内部错误。
TypeError:类型错误,比如尝试对不支持的操作类型进行操作时引发。
ValueError:传入函数的参数类型正确但值不适当(如int()函数接收非数字字符串)时引发。
Warning:所有警告的基类,通常是可选的,用于通知用户某些不期望发生的情况

4.raise关键字
在Python中,raise 关键字用于手动触发一个异常。这在你想要在某些特定条件下中断程序的正常流程,并通知调用者发生了错误时非常有用。

在这里插入图片描述
除法出现问题raise ZeroDivisionError

def divide(x, y):  
    if y == 0:  
        # 当y为0时,手动触发一个ZeroDivisionError异常  
        raise ZeroDivisionError("除数不能为0")  
    else:  
        return x / y  
  
try:  
    result = divide(10, 0)  
except ZeroDivisionError as e:  
    # 捕获到ZeroDivisionError异常,并打印异常信息  
    print(f"捕获到异常:{e}")  
else:  
    # 如果没有异常发生,会执行这个块(在这个例子中不会执行)  
    print("除法运算成功")  
finally:  
    # 无论是否发生异常,都会执行这个块  
    print("这是finally块,总是会被执行")

批卷子判断:raise Exception

try:
    sco=eval(input("score:"))
    if sco<0 or sco>100:
        raise Exception('数字出现问题')


except Exception as e:
    print(e)

else:
    print('score:{}' .format(sco))
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值