python自定义异常处理_Python 自定义异常

Python 自定义异常

Python有许多内置的异常,当其中的某些错误出现时,它们会强制您的程序输出错误。

但是,有时您可能需要创建符合您目的的自定义异常处理。

在Python中,用户可以通过创建新类来定义此类异常。该异常类必须直接或间接地从Exception该类派生。大多数内置异常也是从此类派生的。>>> class CustomError(Exception):

...     pass

...

>>> raise CustomError

Traceback (most recent call last):

...

__main__.CustomError

>>> raise CustomError("An error occurred")

Traceback (most recent call last):

...

__main__.CustomError: An error occurred

在这里,我们创建了一个名为CustomError的用户定义异常,该异常是从Exception类派生的。 与其他异常一样,可以使用带有可选错误消息的raise语句来引发此新异常。

当我们开发大型Python程序时,最好将程序引发的所有用户定义的异常放在单独的文件中。许多标准模块可以做到这一点。他们分别将例外定义为exceptions.py或errors.py。

用户定义的异常类可以实现普通类可以执行的所有操作,但是我们通常使它们简单明了。大多数实现都声明一个自定义基类,并从该基类派生其他异常类。在下面的示例中,将使该概念更清晰。

示例:Python中的用户定义异常

在此示例中,我们将说明如何在程序中使用用户定义的异常来引发和捕获错误。

该程序将要求用户输入一个数字,直到他们正确猜出所存储的数字为止。为了帮助他们弄清楚,将提示他们的猜测是大于还是小于存储的数字。# 定义Python用户定义的异常

class Error(Exception):

"""其他异常的基类"""

pass

class ValueTooSmallError(Error):

"""当输入值太小时引发"""

pass

class ValueTooLargeError(Error):

"""当输入值过大时引发"""

pass

# 我们的主程序

# 用户猜出一个数字,直到他/她猜对为止

# 你需要猜这个数字

number = 10

while True:

try:

i_num = int(input("输入数字: "))

if i_num 

raise ValueTooSmallError

elif i_num > number:

raise ValueTooLargeError

break

except ValueTooSmallError:

print("这个值太小,请再试一次!")

print()

except ValueTooLargeError:

print("这个值太大,请再试一次!")

print()

print("恭喜你! 你猜对了.")

这是该程序的示例运行。输入数字: 12

这个值太大,请再试一次!

输入数字: 0

这个值太小,请再试一次!

输入数字: 9

这个值太小,请再试一次!

输入数字: 10

恭喜你! 你猜对了.

在这里,我们定义了一个名为Error的基类。

我们的程序实际引发的另外两个异常(ValueTooSmallError和ValueTooLargeError)是从这个类派生出来的。这是在Python编程中定义用户定义异常的标准方法,但您并不仅限于此方法。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值