That's a good question. It relates to normal software development and the way procedures are coded.
For example if the database is really busy as everyone is posting their latest dribble, it might run out of connections and you get blocked. That is (ideally should be) an unlikely situation so the programmers can't really make provision other than turning an internal message such as "ORA-12516: TNS:listener could not find available handler with matching protocol stack" into the one you posted about. Or the cleaner has unplugged the server to plug in the vacuum. Those are unexpected errors.
If you tried to log in without a password, there would be a similar error but that's to be expected sometimes, and is easily captured by the developers and handled gracefully so that the forgetful user can understand it. That's an expected error.
The general programming concept is called error handling.