Modularity. Part of it is defining a proper Interface for using the hidden complexity.
Exceptions are only one example. Functions can have behavior, inner states, prior calling requirements etc… you cannot read from its mere prototype.
Do you really want everyone to read the inner code to learn that?
Chances are that if documentation exists, it’s no longer up to date.
This risk also applies to descriptive function names. They can be poor, wrong or outdated, too.
But a major point of a function is that you not have to read its implementation details.
What about exceptions raised within the function? Will you also put them in the descriptive function name? ;)
Tomatos are und umami? I am confused. For me they are more… sour?
Ich bin mir sicher Ungarn wiegt mindestens so viel wie 3 1/2 Saarlands.