While I certainly agree that a runtime divide-by-zero is not the right thing to do, I cannot quite bring myself to agree on the proposed fix.
In my books atan2() is not well-defined for complex arguments at all, and even if in some special cases it might have a reasonable definition, I still don't think it makes sense. See e.g. http://mathworld.wolfram.com/InverseTangent.html