Its was running smoothly! Flawless was the word. Then all the weird cases start to crop up. Things you would have never imagined, would stare you in the eye and say, "I dare you to get past me." That is when you realize that the 1st step to writing good production code is being exceptionally good at Exceptional Handling. There is no point in calling yourself a good coder if you can not even think of the assumptions and errors the end user will make while running your application all by himself and then blame it all on you for not handling things so very trivial. I would like to trade places with him and then watch the fun. But, the customer is always right, primarily because he is paying me good money to write the code. So, i might as well take the blame, or not, by writing good code.
So here are a few pointers i got over this last one week's experience at work on exceptions and their handling:

