前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python自定义异常处理_Python 自定义异常

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

作者头像
用户7886150
修改2021-01-21 11:12:48
修改2021-01-21 11:12:48
1.2K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: 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编程中定义用户定义异常的标准方法,但您并不仅限于此方法。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档