草庐IT

try-Catch

全部标签

python - 其他选项而不是使用 try-except

当文本文件中的第2行有'nope'时,它将忽略该行并继续下一行。有没有不使用try和except的另一种写法?我可以使用ifelse语句来执行此操作吗?文本文件示例:0102nope1325nope代码:e=open('e.txt')alist=[]forlineine:start=int(line.split()[0])target=int(line.split()[1])try:ifline.split()[2]=='nope':continueexceptIndexError:alist.append([start,target]) 最佳答案

python - 使用堆栈跟踪打印异常到文件

我正在尝试将一个简单的日志放入我的脚本中。该日志应该告诉我错误在哪里以及修复脚本所需的尽可能多的信息。我已经将printtofilestr(e)放入每个except中,但它提供了很少的信息来了解出了什么问题。我怎样才能详细说明?例如,我可以在控制台中看到的整个未捕获异常文本?try:#codeexceptExceptionase:print_to_file(log.txt,str(e)) 最佳答案 试试这个,importtracebacktry:1/0exceptExceptionase:withopen('log.txt','a'

python - Try-Except-Finally 语句的过时书籍描述

我正在关注Apress,从新手到专业的Python入门这本书。据说:finally.Youcanusetry/finallyifyouneedtomakesurethatsomecode(forexample,cleanupcode)isexecutedregardlessofwhetheranexceptionisraisedornot.Thiscodeisthenputinthefinallyclause.Notethatyoucannothavebothexceptclausesandafinallyclauseinthesametrystatement—butyoucanput

c++ - 将 c++ 异常传播到 cython - python 异常

我对Cython0.17.1有疑问如果文件不存在,我的函数将抛出std::runtime_error,我想以某种方式将此异常传播到我的Cython代码。voidloadFile(conststring&filename){//somecode,iffilenamedoesn'texiststhrowstd::runtime_error(std::string("Filedoesn'texists"));}在正确包装函数后来自Cython:try:loadFile(myfilename)exceptRuntimeError:print"Can'tloadfile"但是这个异常总是被忽略,

Python 尝试/排除 : trying multiple options

我正在尝试从关于信息所在位置不一致的网页中抓取一些信息。我有代码来处理几种可能性中的每一种;我想要的是按顺序尝试它们,然后如果它们都不起作用,我想优雅地失败并继续前进。也就是说,在伪代码中:try:info=look_in_first_place()otherwisetry:info=lookin_second_place()otherwisetry:info=look_in_third_place()exceptAttributeError:info="Infonotfound"我可以使用嵌套的try语句来做到这一点,但如果我需要15种可能性来尝试,那么我将需要15级缩进!这似乎是一

python - try-except 中的更改在捕获到异常后仍然存在

由于我是第一次学习异常处理(不是在Python中),我的印象是当你开始一个tryblock时,就像你开始在沙箱中编写:如果一个异常发生时,tryblock内发生的一切都将像从未发生过一样。令我天真的惊讶的是,我注意到这不是真的,或者不是我想的那样,至少在Python中是这样。这是我在Python中的实验:>>>a=range(5)>>>a[0,1,2,3,4]>>>try:...a.append(5)...oops...except:...raise...Traceback(mostrecentcalllast):File"",line3,inNameError:name'oops'i

python - 如何显示为什么 "try"在 python 中失败

有没有办法说明为什么“try”失败并跳到“except”,而不用手写出所有可能的错误,也没有结束程序?例子:try:1/0except:somewaytoshow"Traceback(mostrecentcalllast):File"",line1,in1/0ZeroDivisionError:integerdivisionormodulobyzero"我不想做if:printerror1,elif:printerror2,elif:etc...。我想看看如果没有try会显示的错误 最佳答案 尝试:>>>try:...1/0...e

python - 为什么 Python 不在 try 语句上实现 elif 语句?

让我们举一个简单的例子。my_list=[{"name":"toto","value":3},{"name":"foo","value":42},{"name":"bar","value":56}]deffoo(name):try:value=next(e["value"]foreinmy_listife["name"]==name)exceptStopIteration:print"Uuuhnotfound."else:ifvalue%2:print"Odd!"else:print"Even!"如您所见,上面的代码有效:>>>foo("toto")Odd!>>>foo("foo")E

python - Pyramid catch-all 友好的异常处理

有没有一种方法可以在Pyramid网络应用程序中处理某种“包罗万象”的错误处理?我目前已经将异常日志记录到数据库(通过http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/logging/sqlalchemy_logger.html上的文档),并且我会将消息返回到我的View中,以“友好”的方式处理所发生的事情。但是有什么我可以实现的东西会显示某种通用的“糟糕,你遇到了一个问题,我们正在调查它”对于我没有明确捕捉到的任何其他东西,我可以使用上面的错误幕后处理程序将任何内容记录到数据库?或者,我应该在搜索中寻找

python - 如何检查当前代码是否是 try-except-block 的一部分?

我正在调试我作为某种形式的插件框架的一部分编写的函数。该函数似乎没有做它应该做的事情,而且我怀疑,在堆栈的某个地方,有人正在捕获异常,或者引发(非常具体或非常通用的)异常并测试发生了什么(但如果它是吞下了,它仍然没有告诉我在哪里)。我可以进入调试器并检查每个堆栈级别的源代码。是否有更直接的方法来列出当前代码可能属于的任何try-exceptblock——特别是任何此类block的try-part?当然,这仅用于调试目的。 最佳答案 很可能我在这里遗漏了一些东西(我只是盯着catcher函数的dis.dis()输出),但至少这捕获了在