What To Do If Your Program Crashes
If your program crashes during runtime (when else :-) there are a few
ways to deal with this. Solution 1 is works for all programming
languages and has been used by programmers "forever".
Works for all programming languages:
Solution 0: Engage gray matter -- get a hardcopy of your code and
*think* hard.
Solution 1: "pepper" your code with print statements (in the correct
syntax for the language - I'm using Python here). Simple
things like:
... some code here ...
print 'I got here #1 @@@'
... some code here ...
print 'I got here #2 @@@'
... some code here ...
print 'I got here #3 @@@'
etc. will help. The numbering will give you a way to know
which of your trace print statements executed. If it gets
to #1 but not #2 you have some idea where it crashes. You
can then move some print statements in the region between
the first and second print statement.
By the way, the "@@@" will let you *easily* find all of
your trace statements later and delete them *before* you
turn in your code.
Solution 2: Use a debugger (we'll talk about these later)
Solution 3: Explain your code to someone else - often when you
verbalize what you are doing your problem/mistake becomes
obvious. It really works, even if you speak out loud to
yourself.
Python/IDLE specific:
Solution 4: When a Python program crashes it generates a 'traceback' -
it's worth reading. It will tell a lot, the line number
and name of the method where a problem occurred, and what
the problem was that caused the ultimate demise of your
program. See this link for how to interpret
a traceback.
Finally, if you right-click on the traceback, it will pop
up a small menu that will allow you to jump to the
corresponding line shown. Also, IDLE shows the current
line number in the lower right edge of the window.