Seb*_*ian 2 python import exception try-catch
当模块类不在我的脚本中但被其中一个模块使用时(我明确导入了)我如何捕获他的错误?
例如:
from sqlite3 import dbapi2 as sqlite
class sqldb:
def __init__(self):
self.sqlite.connect('records.db')
self.c = self.conn.cursor()
def query(self,query,values)
try:
self.c.execute(query, values)
self.conn.commit()
except sqlite3.OperationalError:
print "SQLite DB locked"
Run Code Online (Sandbox Code Playgroud)
将导致(当数据库被锁定时):
NameError: global name 'sqlite3' is not defined
Run Code Online (Sandbox Code Playgroud)
但是当我没有发现错误时,它确实给出了我的异常:'sqlite3.OperationalError'
那么我应该把它作为除外?或者我应该导入整个sqlite3模块?如果是,这不会增加我的程序的资源占用空间吗?
将以下行放在程序的顶部:
import sqlite3
Run Code Online (Sandbox Code Playgroud)
告诉Python将名称sqlite3与模块相关联.
或者,您可以显式导入要捕获的错误:
from sqlite3 import OperationalError
...
try:
self.c.execute(query, values)
self.conn.commit()
except OperationalError:
print "SQLite DB locked"
Run Code Online (Sandbox Code Playgroud)
或者我应该只导入整个 sqlite3 模块?
是的。
如果是,这不会增加我程序的资源占用吗?
否 - 无论如何都会导入模块。您的import语句所做的就是添加sqlite3对模块全局命名空间的引用。
| 归档时间: |
|
| 查看次数: |
8720 次 |
| 最近记录: |