异常派生exceptions must derive from BaseException

错误:exceptions must derive from BaseException
翻译:异常必须派生自BaseException
非常简单的问题
在这里插入图片描述
下面是我的代码:

if phone.startswith(‘13’):# startswith 是开头的意思
raise ValidationError(‘手机号不符合’)
# 校验符合条件
raise attrs

正确的代码:

if phone.startswith(‘13’):# startswith 是开头的意思 raise ValidationError(‘手机号不符合’)
# 校验符合条件
return attrs

错误的点:
本该是return返回写成了raise

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python中,所有的异常都必须是内置异常类“BaseException”的子类,这是因为“BaseException”类提供了所有异常应该具备的基本行为和属性。例如,所有异常类都应该具有一个“message”属性,用于描述异常的详细信息。此外,“BaseException”类还定义了许多方法,例如“__str__”和“__repr__”,用于将异常对象转换为字符串形式,以便在程序中进行处理。因此,从“BaseException”类派生子类是定义自定义异常的推荐方法。 ### 回答2: 在Python的错误处理机制中,Exception是所有异常类所派生的基类。也就是说,任何自定义的异常类都必须从Exception基类派生而来,否则就无法正确处理。这个要求的意义在于,Python的错误处理机制需要遵循一个规范,以便保证程序的可靠性和可维护性。 使用自定义的异常类可以让程序更明确地表达错误信息,并且可以在处理异常时根据不同的异常类型采取不同的处理方式,以便更精细地控制程序流程。而从Exception派生可以确保自定义的异常类具有基本的异常处理功能,比如获取异常信息、抛出异常等,而且可以与Python内置的异常类型(比如IOError、TypeError等)一起使用,构成异常处理层次结构,进一步提升程序的可读性和可维护性。 需要指出的是,从Exception派生异常类也可以继续派生出新的异常子类,以更好地描述程序中不同类型的错误。比如,在使用文件读写操作时遇到了不同的错误,可以根据情况派生出FileNotFoundError、FileExistsError等多个异常类,以便更好地处理不同类型的文件错误。这种异常类继承关系的树状结构,可以帮助程序员更清晰地描述异常情况,使程序更加健壮和可靠。 总之,Python中的Exception类是所有异常类所必须继承的基类,这个要求是为了确保程序的异常处理机制符合一致性和规范性,使程序更加健壮和可维护。自定义异常类应该从Exception派生而来,并且可以通过继承、派生等方式形成更加细致的异常处理层次结构,在不同情况下采用不同的处理方式,提高程序的正确性和可靠性。 ### 回答3: 在Python编程中,异常Exception)是指程序执行过程中出现的错误或意外情况,比如:语法错误、类型错误、值错误等等。为了处理这些异常情况,Python提供了异常处理机制,可以让程序遇到异常时不会立即崩溃而是执行相应的动作,比如打印错误信息、记录日志、回滚事务等等。 在Python中,所有的异常都是派生BaseException类。这个类是Python中所有异常类的基类,可以让程序统一处理所有的异常情况。 为什么要让异常都从BaseException派生呢?这是因为BaseException提供了一些通用的属性和方法,可以帮助我们更方便地处理异常,比如: 1. message属性:用于获取异常信息; 2. args属性:用于获取异常参数; 3. __str__()方法:用于返回异常的字符串表示; 4. __repr__()方法:用于返回异常的Python表达式表示。 此外,派生BaseException异常类还可以继续定义自己的属性和方法,以满足具体需求。 总之,让所有的异常都从BaseException派生,可以让程序的异常处理更加规范化和高效化,提高代码的可读性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值