你如何处理 Python 中特定于模块的异常?
例如,如果我想捕获从 python 中的 sqlite3 模块抛出的错误,我会在 {} 中放置什么来处理该异常?
import sqlite3
try:
...
except {}:
...
Run Code Online (Sandbox Code Playgroud)
答案已经在这里,如何在 Python 中引用异常类?,虽然你不会通过标题知道它。
我将问题(以当前形式)阅读为一个简单的导入类语法问题。关于异常的SQLLite 文档页面给出了一个示例,但没有描述如何显式实现 SQLLite 异常。它不应该。我相信应该在Python.org 例外页面上给出一个例子,但你在那里找不到任何例子——只是这个:
“许多标准模块定义了自己的异常,以报告它们定义的函数中可能发生的错误。有关类的更多信息在Classes一章中介绍。”
您点击链接,现在您位于Python Classes 的第一页第一段。*Smack* 如果你是新手,你开始阅读,如果你还没有回到谷歌,那么你会得到这个,
顺便说一下[我的重点],我将属性一词用于点后的任何名称——例如,在表达式 z.real 中,real 是对象 z 的一个属性。严格来说,模块中名称的引用是属性引用:在表达式 modname.funcname 中,modname 是一个模块对象,funcname 是它的一个属性。在这种情况下,模块的属性和模块中定义的全局名称之间恰好有一个直接的映射:它们共享相同的命名空间!
现在你被排序了,对吧?我不知道。我熟悉术语“点符号”(以及不太常见的“点语法”),但这里没有使用它。当所有路牌都消失时,可以缓慢地四处走动。当异常页面可以为您提供这个简单的示例时,需要进行很多工作,
import <module>
try:
...
except <module>.<exception>:
...
Run Code Online (Sandbox Code Playgroud)
关于混乱的另一种想法。
使用这种语法从模块中导入特定的函数或类是很常见的,
from [module] import [function/class]
Run Code Online (Sandbox Code Playgroud)
新手可能会发现很难看到简单的答案。我认为这种常用语法在心智模型中造成了一个缺口,使得模块导入语法很难连接到模块使用语法。这是关于这个主题的一个很好的答案,它比上面的类链接更好地引用了模块异常导入
| 归档时间: |
|
| 查看次数: |
3352 次 |
| 最近记录: |