Other applications have their own conventions. In particular, an interactive application may display messages on the user's screen.
Building good, informative error messages may be tedious, but it's easier than reconstructing an error after the fact.
Suppose your program issues a message: USOC 1BHNF NOT FOUND. Then it abends. So far as you know, the program should have found that USOC. Evidently there's a bug in the program.
As you dig into the code, you discover that there are two different places that issue the same message. There's no obvious bug in either place. You don't know which possibility to pursue, and either one will take a lot of digging to investigate. It sure would be nice if you knew which piece of code had issued the message.
Now suppose one of the pieces had issued a slightly different message: USOC '1BHNF' NOT FOUND. It differs only by putting quote marks around the USOC, but that difference would tell you where the message was coming from.
In general: each error message should be issued only in a single kind of circumstance. Different circumstances call for different messages, even if they differ only trivially.