python - 在 python 中为什么使用 except :

标签 python exception-handling

在 python 中,except Exception as exexcept BaseException as ex 是否与 except: 相同,但你得到一个引用异常?

据我了解,BaseException 是较新的默认包罗万象。

除此之外,为什么您只需要一个 except: 子句?

最佳答案

三者的区别在于:

  1. bare except 捕获所有内容,包括系统退出的内容,如 KeyboardInterrupt;
  2. except Exception[ as ex] 将捕获 Exception 的任何子类,这应该是所有用户定义的异常和所有非内置的-系统退出;和
  3. except BaseException[ as ex] 将像 bare except 一样捕获所有内容。

一般来说,我建议使用 2.(理想情况下,作为后备,在您捕获到特定的/“预期的”错误之后),因为这允许那些系统退出的异常渗透到顶层。正如您所说,2. 和 3. 的 as ex 部分可让您在处理错误时检查错误。

关于“except 的弊端”有一篇有用的文章here .

关于python - 在 python 中为什么使用 except :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22408098/

相关文章:

Python - For 循环没有启动(二十一点游戏)

python - 用于复杂 numpy 数组的 Json 编码器和解码器

python - 我正在犯什么语法错误?

python - 带有整数的 'while' 在 Python 中是什么意思,这个 GCD 代码是如何工作的?

python - 如何从日期字段中获取季度对应的日期?

exception-handling - Erlang 错误处理哲学 - case vs throw

exception-handling - 如何在 node.js 中捕获 http 客户端请求异常

php - 在 php 中使用自定义异常类有什么意义?

java - 为什么在 Hibernate 抛出 ObjectNotFoundException 时 Spring 不抛出 DataAccessException?

java - 如何重定向到servlet中的错误页面?