python 异常函数调用栈_从被调用函数中捕获异常 - python

我有一个读取CSV,检查行中值的函数,如果一切正常,它将行写入新的CSV文件。我在主函数中调用了一些验证函数,以检查行的值和格式。

我正在尝试以某种方式实现我的主要功能,以便当我调用其他验证功能并且某些内容未检出时,我完全跳过了写该行的过程。

#main function

for row in reader:

try:

row['amnt'] = divisible_by_5(row['amnt'])

row['issue_d'] = date_to_iso(row['issue_d'])

writer.writerow(row)

except:

continue

#Validation function

def divisible_by_5(value):

try:

float_value = float(value)

if float_value % 5 == 0 and float_value != 0:

return float_value

else:

raise ValueError

except ValueError:

return None

目前,编写者仍在编写应跳过的行。例如,如果一个数字不能被5整除,则编写者只是写'',而不是跳过该行。

因此,我该如何处理for循环中ValueError中引发的异常(divisible_by_5),以便不编写引发异常的行?

参考方案

您可以通过在raise块内使用空的except语句来重新引发捕获在异常处理程序中的异常,并使调用堆栈中的另一个处理程序处理该异常:

except ValueError:

raise # re raises the previous exception

这样,“ main”中的外部处理程序可以捕获它和continue。

注意:照原样,在except:循环中空的for块将捕获所有内容。指定期望的异常(在这种情况下为except ValueError)通常被认为是一个好主意。

更简单地说,不要将验证函数divisible_by_5的主体放在try语句中。如果当前异常与指定的异常匹配,Python会自动搜索定义的最近的except块并使用它:

def raiser():

if False:

pass

else:

raise ValueError

try:

raiser()

except ValueError:

print "caught"

这将打印caught。

Python ThreadPoolExecutor抑制异常 - python

from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED def div_zero(x): print('In div_zero') return x / 0 with ThreadPoolExecutor(max_workers=4) as execut…在返回'Response'(Python)中传递多个参数 - python

我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…Python exchangelib在子文件夹中读取邮件 - python

我想从Outlook邮箱的子文件夹中读取邮件。Inbox ├──myfolder 我可以使用account.inbox.all()阅读收件箱,但我想阅读myfolder中的邮件我尝试了此页面folder部分中的内容,但无法正确完成https://pypi.python.org/pypi/exchangelib/ 参考方案 您需要首先掌握Folder的myfo…Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…Python:图像处理可产生皱纹纸效果 - python

也许很难描述我的问题。我正在寻找Python中的算法,以在带有某些文本的白色图像上创建皱纹纸效果。我的第一个尝试是在带有文字的图像上添加一些真实的皱纹纸图像(具有透明度)。看起来不错,但副作用是文本没有真正起皱。所以我正在寻找更好的解决方案,有什么想法吗?谢谢 参考方案 除了使用透明性之外,假设您有两张相同尺寸的图像,一张在皱纹纸上明亮,一张在白色背景上有深…


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部