Many programs do this like this, gcc is one popular example. The rationale is that the normal output of the program can be redirected to another program, which will be confused by the error message (which is intended solely for human consumption).
source share