Expect the Unexpected

Always remember that anything can and will happen. Code defensively. You don’t need to obsess over contingencies and remote possibilities, but you can’t ignore them either. You especially have to worry about the unexpected when receiving input from the user, from a database, or from a file. Whenever you’re about to perform an action or something, ask yourself, “What could go wrong here? What happens if the file is flagged Read Only? What happens if the database table does not have any records? What happens if the registry keys I was expecting aren’t there?” If you don’t know what might go wrong with a given operation, find out through research or trial and error. Don’t leave it up to your users to discover how gracefully your script reacts to the unexpected. A huge part of properly preparing for the unexpected is the implementation of proper error handling.