【问题标题】:is ValueError() an instance of the Exception class in python3?ValueError() 是 python3 中异常类的实例吗?
【发布时间】:2020-06-02 11:36:08
【问题描述】:

我是 python 的初学者。 我要解释一下下面这几行代码的区别:

except ValueError as err:
    print(err,"in methodA is occured")
    raise ValueError("A Value Error")  

except ValueError as err:
    print(err,"in methodA is occured")
    raise Exception("A Value Error") 

我在 python 文档中看到了这个“Exception hierarchy”。

我知道在第二个中我们通过“异常类”来引发。但是对于第一个,我不确定我们传递的“ValueError”是异常类的实例还是异常类的子类

还是我弄错了?

提前致谢。

【问题讨论】:

  • ValueError 是异常的子类。因此,ValueError 的任何实例都是 Exception 的实例。

标签: python python-3.x exception instance subclass


【解决方案1】:

如果有疑问,help 函数通常很有用,只需启动 Python 控制台并执行 help(ValueError) 即可获取以下信息:

 Help on class ValueError in module builtins:

class ValueError(Exception)
 |  Inappropriate argument value (of correct type).
 |
 |  Method resolution order:
 |      ValueError
 |      Exception
 |      BaseException
 |      object
 |
...

更详细的方式:ValueErrorclassValueErrorException 的子类,ExceptionBaseException 的子类,BaseExceptionobject 的子类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多