在 python 中,except Exception as ex
或 except BaseException as ex
是否与 except:
相同,但你得到一个引用异常?
据我了解,BaseException
是较新的默认包罗万象。
除此之外,为什么您只需要一个 except:
子句?
最佳答案
三者的区别在于:
- bare
except
捕获所有内容,包括系统退出的内容,如KeyboardInterrupt
; except Exception[ as ex]
将捕获Exception
的任何子类,这应该是所有用户定义的异常和所有非内置的-系统退出;和except BaseException[ as ex]
将像 bareexcept
一样捕获所有内容。
一般来说,我建议使用 2.(理想情况下,作为后备,在您捕获到特定的/“预期的”错误之后),因为这允许那些系统退出的异常渗透到顶层。正如您所说,2. 和 3. 的 as ex
部分可让您在处理错误时检查错误。
关于“except 的弊端”有一篇有用的文章here .
关于python - 在 python 中为什么使用 except :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22408098/