捕获系统模块中的警告/错误以编写解决方法

问题描述 投票:0回答:1

我正在尝试捕获系统包引发的警告和(非致命)错误,以在我的代码中实现解决方法。具体来说,我正在生成大量(数千个)Cartopy Earth 可视化,需要下载几个 Goggle Tiles,例如,

import cartopy.io.img_tiles as cimgt

thisURL = 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}.jpg'

tileImage = cimgt.GoogleTiles(url=thisURL)
axis.add_image ( tileImage, 2, cmap='gray' )

其中“axis”是图形轴,“2”是指ArcGIS图像细节的级别。如果无法访问 URL,add_image 会发出非致命错误消息

"<urlopen error [Errno 8] nodename nor servname provided, or not known>"

生成一个图像文件,该图块区域留空。这种情况是随机发生的,具体取决于图像服务器上的下载流量,并迫使我手动对任何受影响的图像进行后处理。

我想捕获错误并在调用 add_image 时实现解决方法。为此,我需要将 add_image 中的错误捕获到我可以测试的对象中。我怎样才能在不深入研究和修改系统包的情况下做到这一点?

我添加了

warnings.filterwarnings("error")

到这个函数并在代码中添加了 try/ except 块,但是 add_image 发出的错误消息似乎没有在我的调用函数中触发异常。

python python-3.x plot runtime-error cartopy
1个回答
0
投票

您可以使用“警告”库并创建一个简单的过滤器。

warnings.simplefilter("ignore")

© www.soinside.com 2019 - 2024. All rights reserved.