You’ve probably heard the following joke before:
A policeman sees a drunk man searching for something under a streetlight and asks the man what he has lost. The drunk man replies that he has lost his house keys and they both look under the streetlight together. After a few minutes the policeman asks if he is sure he lost them here, and the drunk replies, “No, I lost them in the park.” The policeman asks why he is searching here, and the drunk replies, "Because the light is better here."
It’s funny because it’s true. Just ask any programmer or system admin to tell you about the time they spent a day “solving” a problem only to discover they were looking very, very hard in the wrong place. It’s easy to get tunnel vision from unrecognized biases and completely miss the real problem. This is particularly true when we’re tired, under stress, working in a less familiar environment, or otherwise preoccupied. Under these conditions, superstitions, hunches, and dogged (but misplaced) determination can easily win the day over dispassionate analysis. When you find yourself in this situation, the more easily you can get relevant information, the better. This technical note describes a methodology for defining and tracking custom errors to automatically capture useful details in advance of any emergency. In fact, these same tools can also be integrated into your development workflow so that many errors and exceptions are caught before you release a version or at least before a customer notices a problem.
Download Complete Tech Note: Tech Note Document