我将Python与MySQL和Django结合使用。我一直看到这个错误,我不知道异常是在哪里抛出的:
Exception _mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't run this command now") in <bound method Cursor.__del__ of <MySQLdb.cursors.Cursor object at 0x20108150>> ignored
我的代码中有许多“尝试”和“异常”块--如果
在Python中,捕获“所有”异常的最佳方法是什么?
except: # do stuff with sys.exc_info()[1]
except BaseException as exc:
except Exception as exc:
捕获可以在线程中执行。
我的目标是记录普通代码可能抛出的任何异常,而不屏蔽任何特殊的Python异常,例如那些指示进程终止等的异常。
还需要获得异常的句柄(例如通过上面包含exc的子句)。
我使用Zend_Db_Table来管理我的MySQL连接。它们工作得很好,但只有一个巨大的安全问题。
如果出现错误,比如MySQL关闭,ZF会抛出一个异常,显示db连接用户名和密码。
例如,我在配置中设置了错误的db密码。这是抛出的异常。
exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: YES)' in /Users/claudiocani
我正在使用Kohana 2。我想捕获一个数据库异常,以防止在无法建立到服务器的连接时出现错误页面。
显示的错误是
system/libraries/drivers/Database/Mysql.php [61]:
mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at
'reading initial communication packet', system error: 110
此时根本无法访问数据库服务器。
我是从一个模型开始做这个的。我都试过了
public functi
我有一个这样的块:
begin
# some SQL request
rescue Mysql::Error => e
logputs "Mysql::Error occurred, retrying in 10s: #{e.message}"
sleep 10
retry
end
但是,当出现“与MySQL服务器的连接丢失”错误时,此块无法捕获该错误并重试( MySQL服务器重新启动)。你知道我怎样才能正确地捕捉这个异常吗?
谢谢!
如果我在python中使用用c编写的lib,比如zlib,我会得到如下错误:
error: Error -3 while decompressing: invalid distance too far back
我该如何处理python的这个异常?据推测,异常是在c模块中定义的,并且没有像except SomeException这样的异常类。
在Java世界中,我们知道异常被分类为checked vs runtime,当某个东西抛出一个checked异常时,该东西的调用者将被迫以某种方式处理该异常。因此,调用者将很好地意识到存在异常的事实,并准备/编写代码来处理该异常。
但是对于Python,如果没有检查异常的概念(我希望这是正确的),那么调用某些东西的人如何知道该东西是否会抛出异常呢?考虑到这种“对可能抛出异常的知识的缺乏”,调用者如何知道它可以处理异常,直到为时已晚?
for line in sys.stdin:
line = line.strip()
uid, profile = line.split('\t')
try:
process(profile)
except:
# do nothing and skip this profile
我想跳过所有抛出异常的配置文件。但是python给了我
IndentationError: expected an indented block
在"#什么都不做,跳过这个配置文件“这一行。
我如何告诉python什么都不做?
如果我运行下面的Python并假设我的文件读取将失败,IOError处理程序将引发一个自定义异常,但我不确定如何处理引发的自定义异常。有人能帮忙吗?
class CustomIOError(IOError):
def __init__(self, msg):
super(CustomIOError, self).__init__()
self.error_msg = msg
try:
# Open file to read
with open(fileName) as f:
for line in f:
print line,
except IOE