Day25

异常处理

Python的异常处理机制为程序提供了强大的容错能力 (fault tolerance)。当程序在运行时遇到意外情况(即异常),它不会直接崩溃,而是可以被设计成优雅地处理这些错误,并可能继续执行后续逻辑(如果设计允许)或以可控的方式结束。当异常发生时,Python会创建一个异常对象 (exception object)(通常是 Exception 类的子类实例)。如果这段可能出错的代码位于 try 语句块中,程序流程会寻找并跳转到匹配的 except 语句块(如果存在)来处理这个异常。

核心概念

try: 包含可能会引发异常的代码块。程序会首先尝试执行这里的代码。
except: 如果try块中的代码确实引发了特定类型的异常(或者任何异常,如果未指定类型),则执行此代码块。
else: (可选)如果try块中的代码没有发生任何异常,则执行此代码块。
finally: (可选)无论try块中是否发生异常,总会执行此代码块(常用于资源清理)。

try:
    # 可能会引发异常的代码
except ExceptionType: # 最好指定具体的异常类型,例如 ZeroDivisionError, FileNotFoundError
    # 当 try 块中发生 ExceptionType 类型的异常时执行的代码
except: # 不推荐:捕获所有类型的异常,可能会隐藏bug
    # 当 try 块中发生任何其他未被前面 except 捕获的异常时执行的代码
 
try:
    # 可能会引发异常的代码
except ExceptionType:
    # 当 try 块中发生 ExceptionType 类型的异常时执行的代码
else:
    # 当 try 块中【没有】发生任何异常时执行的代码
 
try:
    # 假设 result_operation() 是一个可能出错的操作
    value = result_operation()
except SomeError:
    print("操作失败,使用默认值。")
    value = default_value
else:
    # 只有当 result_operation() 成功时,才执行这里的代码
    print(f"操作成功,结果是: {value}。现在进行后续处理...")
    process_value_further(value)
 
 
如果把 process_value_further(value) 放在 try 块内,那么如果 process_value_further 本身也可能抛出 SomeError(或其他 try 块想要捕获的错误),它就会被意外捕获。else 块确保了只有在 try 块中的代码完全无误地执行完毕后,才会执行 else 块的内容。
 
# 示例 a: 缺少冒号
 def my_function()
     print("Hello")
 
# 示例 b: 非法表达式
 x = 5 +
 print(x)
 
# 示例 a: 变量未定义
print(some_undefined_variable)
 
# 示例 b: 打错变量名
print(my_lisst) # 变量名拼写错误
 
print("Age: " + 25) # 字符串和整数
my_number = 10
my_number() # 尝试像函数一样调用一个整数

@浙大疏锦行

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值