PYTHON 错误处理
PYTHON 代码注释 

PYTHON 异常处理

Python 的异常处理机制允许程序在执行过程中遇到错误时,能够以一种结构化和可预测的方式进行响应。以下是 Python 中异常处理的一些关键概念和用法:

基本概念

  • 异常(Exception):当程序运行中发生错误时,会抛出一个异常。异常是一个事件,它中断了程序的正常执行流程。

  • 错误(Error):是异常的一种,通常指不应该被程序捕获并处理的严重问题。

  • 异常类:Python 中的异常是类,它们继承自内置的 BaseException 类。


基本用法

1、try 块

try 块中放置可能会引发异常的代码。

try:
    # 可能会抛出异常的代码
    result = 10 / 0


2、except 块

except 块用于捕获并处理特定的异常。

except ZeroDivisionError:
    # 处理除以零的错误
    print("不能除以零!")


3、捕获多个异常

可以为不同的异常类型定义多个 except 块。

try:
    # 可能会抛出多种异常的代码
    number = int(input("请输入一个数字:"))
except ValueError:
    print("输入的不是有效的数字")
except TypeError:
    print("输入类型错误")


4、else 块

如果没有异常被抛出,else 块中的代码会被执行。

try:
    # 可能会抛出异常的代码
    number = int(input("请输入一个数字:"))
except ValueError:
    print("输入错误")
else:
    print("输入的数字是:", number)


5、finally 块

无论是否发生异常,finally 块中的代码都会被执行,通常用于执行清理工作。

try:
    # 可能会抛出异常的代码
    print(10 / 2)
except ZeroDivisionError:
    print("除以零错误")
finally:
    print("这是 finally 块,无论是否发生异常都会执行。")


6、抛出异常

可以使用 raise 关键字手动抛出一个异常。

if some_condition:
    raise ValueError("这是一个自定义异常信息")


7、自定义异常

可以定义自己的异常类来表示特定的错误情况。

class MyCustomError(Exception):
    """自定义异常类"""
    pass
try:
    raise MyCustomError("发生了一个自定义错误")
except MyCustomError as e:
    print(e)


8、忽略异常

使用 pass 可以忽略异常,但这不是一个好的实践。

try:
    # 可能会抛出异常的代码
    pass
except SomeError:
    pass  # 忽略异常


最佳实践

捕获预期的异常,而不是所有异常。
在 except 块中提供有用的错误信息。
使用 finally 块进行必要的清理工作。
避免使用过于广泛的异常捕获(如 except:),这可能会隐藏错误。
定义清晰的自定义异常类,使错误处理更加明确。


异常处理是 Python 中一个强大的特性,正确使用它可以使你的程序更加健壮和易于维护。如果你有更具体的问题或需要示例,请随时提问。