Python:异常处理机制

1:try-except 语句

基本结构如下:

try:
    # 可能会引发异常的代码块
except ExceptionType as e:
    # 当指定类型的异常被抛出时,执行这里的代码块来处理异常
    # 'e' 可以获取异常对象,以便获取更多异常相关的信息

多个 except 子句来处理不同类型的异常:

try:
    # 可能会引发异常的代码块
except ExceptionType1 as e1:
    # 处理异常类型 1
except ExceptionType2 as e2:
    # 处理异常类型 2
except Exception as e:
    # 处理其他未被前面特定异常类型捕获的异常

try-except-else-finally 结构:

#else 子句:当 try 子句中的代码没有引发异常时执行。
#finally 子句:无论是否发生异常,都会执行其中的代码,常用于进行一些清理操作,比如关闭文件、释放资源等。
try:
    # 可能会引发异常的代码块
except ExceptionType as e:
    # 处理异常
else:
    # 没有异常时执行
finally:
    # 无论是否有异常都会执行

自定义异常:

class CustomException(Exception):
    pass

try:
    raise CustomException("这是一个自定义异常")
except CustomException as e:
    print(e)

捕获多个异常类型:

try:
    # 可能引发异常的代码
except (ExceptionType1, ExceptionType2) as e:
    # 处理多个指定类型的异常

2:assert

基本语法如下:

assert condition, "optional error message"
#condition:要检查的条件表达式。
#"optional error message":可选的错误信息,如果条件不为真,这个信息将作为AssertionError异常的一部分显示。

x = 5
assert x > 0, "x 必须大于 0"

注意事项
assert语句在Python的优化模式(使用-O参数运行Python时)会被忽略。
assert不应该用于替代异常处理,它主要用于开发和测试阶段,以快速失败并发现问题。
assert后面的错误信息是可选的,但提供错误信息可以帮助更快地诊断问题。

3:raise

在Python中,raise语句用于引发一个异常。当你想要在特定条件下停止程序的正常流程,并通知调用者发生了错误或异常情况时,可以使用raise语句。

基本语法

raise [exception_name[(reason)]]
#exception_name:要引发的异常名称。
#reason:可选的错误原因或描述,通常是一个字符串。

引发内置异常

x = -1
if x < 0:
    raise ValueError("x 不能为负数")

引发自定义异常

class MyException(Exception):
    pass

def my_function(value):
    if value < 0:
        raise MyException("值不能为负数")

try:
    my_function(-1)
except MyException as e:
    print(f"捕获到异常:{e}")

注意事项
raise语句通常用于错误处理,允许你在代码中显式地控制异常的引发。
当raise一个异常时,程序将立即停止当前代码块的执行,并寻找相应的异常处理(except块)。
如果没有找到处理异常的except块,程序将终止,并显示一个错误消息,包括异常的类型和原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值