Today I made some big changes to some of the most important functions in my software. The change basically disallowed returning a default value and instead throwing an exception if anything went wrong creating the correct value.
This, of course, would break a bunch of code. I conveniently ignored this fact at first. After I finished an saw the first repercussions, I realize the way to stage this was easy. Instead of throwing the exceptions, I would just report the exceptions and then return the default value. This way, the error reporting acts as if the change has been made, but the system acts as if it hasn't. I can fix the bugs as they appear and later make the change to actually throw the exceptions.
The song of the day is: