错误总是在所难免。编写可预见和处理错误的脚本可让您节省大量时间,同时避免很多令人头疼的问题。当工具返回错误消息时,ArcPy 会生成系统错误或异常。在 Python 中,您能够提供多种可用于处理异常的结构和方法。当然,也会由于其他与地理处理工具不相关的原因导致脚本失败。同时需要以适当的方式发现和处理这些问题。以下部分会提供一些方法,这些方法介绍了 Python 异常处理的基础知识。
当工具发出错误消息时,ArcPy 会生成arcpy.ExecuteError异常。Python 允许您编写可在生成系统错误时立即自动运行的例程。在此错误处理例程中,可从 ArcPy 检索错误消息并作出相应的反应。如果脚本没有错误处理例程,则会立即失败,这就会降低它的稳定性。可使用错误处理例程来管理错误并提高脚本的可用性。
地理处理工具错误消息带有六位代码。这些ID 代码已记录在案,可提供有关这些消息产生原因及处理方式的附加信息。
try-except 语句
try-except 语句可用于封装整个程序或只封装代码的特定部分来捕捉和标识错误。如果 try 语句中发生错误,则会引发异常,然后会执行 except 语句下的代码。使用基本的 except 语句是最基本的错误处理方式。
在以下代码中,由于未提供所需的buffer_distance_or_field 参数,导致缓冲执行失败。为了在失败之后显示说明性的提示,使用了except 语句来捕捉错误,然后获取并打印缓冲生成的错误消息。请注意,只有在缓冲返回错误后才会执行 except 块。
import arcpy
import sys
try:
# Execute the Buffer tool
arcpy.Buffer_analysis("c:/transport/roads.shp", "c:/transport/r