您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python:ValueError和Exception之间的区别?

5b51 2022/1/14 8:23:04 python 字数 2774 阅读 616 来源 www.jb51.cc/python

我试图了解提出ValueError和Exception之间的区别.我已经尝试了两个相同的代码(即使在同一个分支),结果是相同的 – 我收到了一条错误消息. 我在SO上对这个问题进行了研究,但没有对此进行讨论.然后我阅读了异常的文档,发现了以下definition的ValueError: Raised when a built-in operation or function receives an

概述

我在SO上对这个问题进行了研究,但没有对此进行讨论.然后我阅读了异常的文档,发现了以下definition的ValueError:

Raised when a built-in operation or function receives an argument that has the right type but an inappropriate value,and the situation is not described by a more precise exception such as IndexError.

据我了解,Exception是一个更通用的术语,ValueError可以应用于某些特定情况.但由于提高两者的结果是相同的,我想了解,区分ValueError和Exception的实际意义是什么. Python版本应该在这里不相关.谢谢!

编辑:
感谢您的回答,我得到了它,try-exception构造中两个术语之间的区别是什么.但是,如果只是提高它们,它们如何区别,而不是除外?

raise Exception('blah')

raise ValueError('blah')

回答@PeterWood:在这两种情况下我都得到错误消息“blah”,但在一种情况下它是“Exception:blah”,在第二种情况下:“ValueError:blah”.我认为在这种情况下他们两者之间没有实际区别.

在这个例子中:

try:
    a=12+"xxx"
except Exception:
    # exception is trapped (TypeError)

异常被捕获,所有异常(除了BaseException异常)都被except语句捕获.

在另一个例子中:

try:
    a=12+"xxx"
except ValueError:
    # not trapped

这里,异常没有被捕获(TypeError不是ValueError并且不继承)

您通常使用特定的异常来仅捕获可能发生的异常(最好的例子是处理文件时的IOError),并保留其余的未处理的异常.捕获所有异常的危险在于获得一段不会崩溃但什么都不会崩溃的代码.

(当你引发异常时编辑答案以响应你的编辑:):你正在创建一个Exception实例,除了ValueError:语句之外,它将被过滤掉.消息是不同的,因为异常的表示(打印时)包括异常类名称.

总结

以上是编程之家为你收集整理的Python:ValueError和Exception之间的区别?全部内容,希望文章能够帮你解决Python:ValueError和Exception之间的区别?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶