Another reason: the code you write may also be used as part of a larger project by someone else. And since using built-in exception handling routines is standard, proponents of a large project expect you to handle your exceptions similarly, so that exception handling can be done correctly at the top levels - not to mention that using standard output as an error output is questionable practice (it can be suppressed, for example, or not used at all).
UPD: I misunderstood your question. The reason I described actually justifies manually throwing exceptions, but doesn't use try...catch blocks.
Vleseg
source share