当前位置: 首页 > 面试题库 >

Python中except:和except Exception之间的区别,例如e:

阎知
2023-03-14
问题内容

以下两个代码段都执行相同的操作。他们捕获每个异常并执行except:块中的代码

片段1-

try:
    #some code that may throw an exception
except:
    #exception handling code

摘要2-

try:
    #some code that may throw an exception
except Exception as e:
    #exception handling code

两种结构到底有什么区别?


问题答案:

在第二个中,您可以访问异常对象的属性:

>>> def catch():
...     try:
...         asd()
...     except Exception as e:
...         print e.message, e.args
... 
>>> catch()
global name 'asd' is not defined ("global name 'asd' is not defined",)

但是它不会捕获BaseException或系统退出异常SystemExitKeyboardInterrupt并且GeneratorExit

>>> def catch():
...     try:
...         raise BaseException()
...     except Exception as e:
...         print e.message, e.args
... 
>>> catch()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in catch
BaseException

除了一个裸露的:

>>> def catch():
...     try:
...         raise BaseException()
...     except:
...         pass
... 
>>> catch()
>>>

有关更多信息,请参见文档的“内置异常”部分和本教程的“错误与异常”部分。



 类似资料:
  • 问题内容: 这发生在python2.7中 我正在研究python中元类的想法,几乎所有教程都将对象引用为python中类的实例。但是,在使用类A():定义类的形式时,我看到了: 这意味着当从不是对象固有的类创建实例时,该实例是实例,但是当类是对象固有的类时,该类的实例是对象吗? 谁能解释其中的区别?在现实生活中,我应该使用哪一个? 谢谢! 问题答案: 这是新样式类和旧样式类之间的区别,在文档中对此

  • 本文向大家介绍C和Python之间的区别,包括了C和Python之间的区别的使用技巧和注意事项,需要的朋友参考一下 C和Python都是主要使用的编程语言。各种特性使它们在程序设计领域流行。根据这些特征,我们可以区分C和Python。 以下是C和Python之间的重要区别。 序号 键 C语言 Python语言 定义 Python是一种通用的解释型,交互式,面向对象的高级编程语言。 类型 另一方面,

  • 本文向大家介绍Python和Bash之间的区别,包括了Python和Bash之间的区别的使用技巧和注意事项,需要的朋友参考一下 Python Python是一种编程语言,旨在易于实现和易于理解。它是一种动态类型的语言。它不使用指针。 重击 Bash是命令行解释器,默认情况下在Linux和MacOS操作系统中提供。它也可以安装在其他操作系统中。它是Linux和MacOS的默认用户外壳程序。 以下是P

  • 问题内容: 我早就做了一些Python。但是,现在我要转向Java。我想知道Python“自我”方法和Java“ this”之间是否有任何区别。 我知道“自我”不是关键字,而“这个”则不是。这几乎就是我能想到的。我还有什么想念的吗? 问题答案: 关于Python): 您需要使用 self 的原因。这是因为Python不使用@语法来引用实例属性。Python决定以一种使该方法所属的实例自动传递但不会

  • 问题内容: 和有什么不一样? 问题答案: 默认的实现是无用的(很难想象有一个不是,但是是的) 目标是明确 目标是可读性 容器的 使用包含的对象repr 默认实现是没有用的 这主要是令人惊讶的,因为Python的默认设置往往相当有用。但是,在这种情况下,具有默认值的行为如下: 太危险了(例如,如果对象之间互相引用,则很容易陷入无限递归)。因此,Python应对了。请注意,有一个默认值为true:如果

  • 问题内容: 和Python和有什么不一样? 我尝试环顾四周,但没有在这些线上找到具体问题。如果已经回答,则链接就足够了。 问题答案: 0和1是退出代码。 意味着干净出口,没有任何错误/问题 表示存在一些问题/错误/问题,这就是程序退出的原因。 这不是特定于Python的,非常普遍。非零退出代码被视为异常退出,有时,错误代码指示问题所在。错误代码为零表示成功退出。 这对于其他程序,shell,调用方