
Python手动抛出异常的核心在于
raise
raise
使用
raise
raise
raise
raise
def check_age(age):
if age < 0:
raise ValueError("年龄不能为负数") # 直接抛出 ValueError 异常
print("年龄合法")
check_age(-5) # 这会引发 ValueError: 年龄不能为负数这段代码如果
age
ValueError
立即学习“Python免费学习笔记(深入)”;
你也可以只
raise
def process_data(data):
if not isinstance(data, list):
raise TypeError # 抛出 TypeError 异常,无需显式实例化
print("数据处理中...")
process_data("不是列表") # 这会引发 TypeError自定义异常通常是为了更精确地表达程序中出现的特定错误情况。Python 内置的异常类(如
ValueError
TypeError
自定义异常类很简单,只需要继承 Python 内置的
Exception
class InsufficientFundsError(Exception):
"""当账户余额不足时抛出的异常"""
def __init__(self, balance, amount):
self.balance = balance
self.amount = amount
super().__init__(f"账户余额不足,当前余额:{balance},尝试支出:{amount}")
def withdraw(balance, amount):
if balance < amount:
raise InsufficientFundsError(balance, amount)
print("取款成功")
try:
withdraw(100, 200)
except InsufficientFundsError as e:
print(e) # 输出:账户余额不足,当前余额:100,尝试支出:200这里,我们定义了一个
InsufficientFundsError
Exception
异常抛出后,如果没有被
try...except
def divide(a, b):
try:
result = a / b
return result
except ZeroDivisionError:
print("除数不能为零")
return None
print(divide(10, 2)) # 输出:5.0
print(divide(10, 0)) # 输出:除数不能为零 None在这个例子中,我们使用
try...except
ZeroDivisionError
抛出异常应该在程序遇到无法正常处理的错误时。例如:
不要滥用异常,避免将异常作为正常的控制流使用。
assert
raise
assert
AssertionError
assert
raise
简单来说,
assert
raise
finally
理论上可以在
finally
finally
try
def example():
try:
print("try 块")
raise ValueError("try 块异常")
finally:
print("finally 块")
raise TypeError("finally 块异常")
try:
example()
except TypeError as e:
print(f"捕获到异常:{e}") # 输出:捕获到异常:finally 块异常在这个例子中,
try
ValueError
finally
TypeError
finally
以上就是Python怎么手动抛出一个异常_raise关键字与自定义异常抛出的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号