如何通过处理错误来完成过程?

时间:2018-07-02 14:26:47

标签: python exception

-这是一个普遍存在的Python问题。

我经常遇到拓扑错误,它们很小,即使它们在那里,我也想继续进行交叉。是否有可能为此例外设置一个例外:

TopologyException: found non-noded intersection between LINESTRING (229971 4.39944e+06, 229971 4.39944e+06) and LINESTRING (229971 4.39944e+06, 229971 4.39944e+06) at 229971.08857010119 4399438.0928708706并使其完全完成该过程?我正在使用Python和Geopandas。

有时在十字路口也说:

 TopologicalError: This operation could not be performed. Reason: unknown

是否可能出现任何这样的行:inte_s=gpd.overlay(data2,asttom,how='intersection')  导致此错误创建异常并使其不受出现的错误影响而执行计算?在完成交点的这一行中,什么代码可以做到?

3 个答案:

答案 0 :(得分:1)

处理Python错误的一种方法是使用try and except statement

这是我在测试时经常使用的示例代码。您可以将可能失败的操作放在该块的try部分中,即使它确实引发异常,您的整个脚本也不会损坏。

try:
    #operation that may fail
except Exception as e:
    print('something went wrong: ' + e)
    # what you want to do if the operation does fail

上面的代码是try / except语句的一般形式。如果您希望捕获特定于 的错误,那么您正在寻找类似this这样的答案。

答案 1 :(得分:0)

是的,您可以使用try/except块跳过或处理python中的任何异常。在您的情况下,将是:

try:
    inte_s=gpd.overlay(data2,asttom,how='intersection')
except (TopologicalError, TopologyException):
    #skipping error here
    pass

答案 2 :(得分:0)

TopologicalError需要首先导入,然后使用try ... except语句。

from shapely.geos import TopologicalError

try:
    # your code that may raise the exception
except TopologicalError:
    # alternative code if the exception is raised