This week's lab focused on debugging and catching errors in python code. I personally used the program Spyder to do this.
We worked on three different pre-written scripts that had various different errors and/or exceptions. To find the errors in the code, I used the four steps we learned about in the lecture and our textbook (Python Scripting for ArcGIS Pro).
1) Syntax
This type of error can be easily spotted when looking at your code (missing a letter, parenthesis, or something that should be upper or lowercase). You can also run the code and Spyder will tell you exactly what type of error, the line, and with a carrot, the location of the error.
I used this method to debug the first script of the assignment.
Script 1: List the field names of Shapefile in ArcGIS
2) Debugging and Stepping through the Code
In this lab, I also learned how to use the debugging tool. The debugger tool can be run to go the entire code, stopping after the error, or you can opt to go line by line of the code and see if there are any issues (None or error information stated) with each specific line. To go to the next line of code, simply enter n and you can edit each line as it runs. I used this method, as well as the syntax, to debug the second script of code in this lab.
3) Try/Except statements
This method uses the statement try/except to sidestep errors in a code and be able to fully run the code/script.
I used this method to run Script 3 without fixing any errors it held.
This method for me personally was the trickiest to use, as I had a tricky time determining where to place the except statement. Placing the try statement was easy to determine, as I simply ran the code and placed the statement right before the line where the error occurred. I tried to place the except statement in a couple of different places in the lines of the code of Part A, but I would get the NameError for different things like program and lyrlist (where they weren’t defined). I finally put the except statement, with an exception, at the end of all the code of Part A, which worked!
Comments
Post a Comment