草庐IT

Try-catch

全部标签

'Try until no exception is raised' 的 Python 习语

我希望我的代码自动尝试多种方式来创建数据库连接。一旦一个工作,代码就需要继续(即它不应该再尝试其他方式)。如果它们都失败了,那么脚本就会爆炸。所以在-我认为是,但很可能不是-我尝试了这个天才之举:importpsycopg2fromgetpassimportgetpass#ouch,globalvariable,oohwell,it'sjustasimplescriptehCURSOR=Nonedefget_cursor():"""Createdatabaseconnectionandreturnstandardcursor."""globalCURSORifnotCURSOR:#tr

python - 如何在一段时间内退出 try/except? [Python]

我正在尝试这个简单的代码,但是该死的中断不起作用...出了什么问题?whileTrue:forproxyinproxylist:try:h=urllib.urlopen(website,proxies={'http':proxy}).readlines()print'worked%s'%proxybreakexcept:print'error%s'%proxyprint'done'它应该在连接正常时离开while,如果没有连接则返回尝试另一个代理好的,这就是我正在做的我正在尝试检查一个网站,如果它发生了变化,它必须中断while以继续脚本的其余部分,但是当代理未连接时,我从变量中得到错

python - Python 中的 try-else 有什么用?

我正在尝试学习Python的次要细节,然后我遇到了thetry-elsestatement.try1_stmt::="try"":"suite("except"[expression[("as"|",")target]]":"suite)+["else"":"suite]["finally"":"suite]Theoptionalelseclauseisexecutedifandwhencontrolflowsofftheendofthetryclause.Exceptionsintheelseclausearenothandledbytheprecedingexceptclauses

python - 如何在 Python 中使用 try/except 获得更好的错误信息

考虑这个try/exceptblock,我用它来检查存储在e中的错误消息。Try/Catch获取equeryString="SELECT*FROMbenchmarkWHERENOC=2"try:res=db.query(queryString)exceptSQLiteError,e:#`e`hastheerrorinfoprint`e`此处的e对象仅包含上述字符串。然而,当python报告一个未处理的错误时,它会显示一个非常详细的信息,如下所示:Traceback(mostrecentcalllast):File"fool.py",line1,inopen("abc.zyz","r")

将单个语句包装在 try except block 中的 Python 干净方法

我目前正在使用com对Excel进行一些Python自动化。它功能齐全,可以做我想做的事,但我发现了一些令人惊讶的事情。有时,我使用的某些Excel命令会无缘无故地失败并出现异常。其他时候,他们会工作。在我正在做的事情的VB等效代码中,这个问题显然被认为是正常的,并且用OnErrorResumeNext语句覆盖。当然,Python没有said语句。我不能在tryexcept循环中包含整个集合,因为它可能会在中途“失败”并且无法正确完成。那么,将几个独立的语句包装到一个tryexceptblock中的pythonic方法是什么?具体来说,比以下更清洁的东西:try:statementex

python - 为什么在 Python 的 try/except 构造中使用 else?

我正在学习Python,并且偶然发现了一个我无法轻易理解的概念:try构造中的可选elseblock。根据thedocumentation:Thetry...exceptstatementhasanoptionalelseclause,which,whenpresent,mustfollowallexceptclauses.Itisusefulforcodethatmustbeexecutedifthetryclausedoesnotraiseanexception.我感到困惑的是,为什么在try构造中有如果try子句没有引发异常则必须执行的代码——为什么不简单地让它跟随try/exc

python - 对自定义 Exception 的 try/except 感到困惑

我的代码:classAError(Exception):print'erroroccur'foriinrange(3):try:print'---oo'raiseAErrorexceptAError:print'getAError'else:print'goingon'finally:print'finally'当我运行上面的代码时,输​​出是这样的:erroroccur---oogetAErrorfinally---oogetAErrorfinally---oogetAErrorfinally我认为字符串"erroroccur"应该出现三次,比如"---oo",但它只出现了一次;为什

python - 加密 : AssertionError ("PID check failed. RNG must be re-initialized after fork(). Hint: Try Random.atfork()")

我正在创建执行不同任务的各种流程。其中之一,也是唯一一个,有一个创建PyCrypto对象的安全模块。所以我的程序启动,创建各种进程,处理消息的进程使用安全模块解密,我得到以下错误:firstSymKeybin=self.cipher.decrypt(encFirstSymKeybin,'')File"/usr/local/lib/python2.7/dist-packages/Crypto/Cipher/PKCS1_v1_5.py",line206,indecryptm=self._key.decrypt(ct)File"/usr/local/lib/python2.7/dist-pa

python - Python中如何正确使用try,except,else

所以我想知道编写tryexcept语句的正确方法是什么。我是Python错误处理的新手。选项1try:itemCode=items["itemCode"]dbObject=db.GqlQuery("SELECT*FROM%sWHEREcode=:1"%dbName,itemCode).get()dbObject.delete()exceptAttributeError:print"There'snoitemwiththatcode"exceptKeyError:print"Badparametername"except:print"Unknowerror"选项2try:itemCode

python - 类中未定义/未实现属性的 Python "catch all"方法

我喜欢Python的@property装饰系统。我喜欢您可以在调用aClassObect.attribute时运行自定义代码。特别是在设置属性时验证数据。但是,我想要但找不到的一件事是一种在尝试设置不存在的属性时运行自定义代码的方法。例如,假设我有以下类(class):classC(object):def__init__(self):self._x=None@propertydefx(self):"""I'mthe'x'property."""returnself._x@x.setterdefx(self,value):self._x=value@x.deleterdefx(self)