Lesson 5. Defensive, clean Coding.
As always, if you want your code to be run
cleanly on all systems, you have to be prepared for any type of situation. Apple warns us
of this all the time, so I don't have to go into too much detail, but there are a few
things I would like to stress so that your code doesn't simply crash when it gets
executed. You goal is then not found. Here are some tips and things to watch out for.
1. ResError. Who knows? Maybe you've been purged. Check it after every Resource Manager
call you can, taking efficiency into account, of course.
2. Nil pointers. Who knows? Maybe a virus detector caught part of your set of resources
(if you're using a set, which I highly discourage) and deleted them. Find an alternate
route, or exit gracefully.
3. Patch well. If you are going to modify something like a jump table, be sure you keep
the originals somewhere for your own use so you can call the code (pass-through coding).
If you don't, and you just destroy it and call the next code resource down the line, who
knows what you might be calling. A bezier-curve calculation routine does nothing if the
caller knows not what he's doing.
4. File Manager. Don't depend on each hard drive being called "Macintosh HD".
Don't depend on an "Applications" folder. Don't depend on anything. Read the
directory and see what you find interesting. System 7's File Manager is great, but watch
out for:
5. System 6 or before. You wouldn't want your code to execute only on one system version
now, would you? By known figures, only 50% of Mac users use System 7. Sad, eh? But why
exclude them from the pleasures of your code?
6. Error Check, Error Check, Error Check. The thought police are on you again. Never
forget that nothing is permanent.