...By convention, this output stream is used to display error messages or other information that should come to the immediate attention of a user even if the principal output stream, the value of the variable out, has been redirected to a file or other destination that is typically not continuously monitored.
Does that help?
however, sometimes, you may want to separate where they go. say you're running a script or program that produces some output. you want to save the output to a file. but you also want to know when you encounter a bad record. however, you don't want to mix your error messages with your good data.
you can print your data to the .out, and direct it to one file, and your error messages to .err and direct it to a different file.