Дурные оскорбления пропущу мимо ушей. Будем считать, что у Вас день не задался.Аргументы сторон, по крайней мере, некоторые из них, я, естественно читал. Как другой спор тупо- и остроконечников, про Checked/Unchecked Exceptions в Java/Scala. А ещё знаком с методологиями обработки исключительных ситуаций в таких, например, языках как Visual Basic и Rexx'е, где действительно были чётко выделенные fail/recovery секции, и, в целом, при всех известных ограничениях, код они не загрязняли.
Под загрязнением кода я в ввиду примерно такие конструкции, щедро разбросанные по многим Go-шным библиотекам:
defer func() {
if e := recover(); e != nil {
err = e.(error)
}
}()
Замечу, что никаких _осмысленных_ действий в этом случае не производится, только борьба с приступами диар^W паники в нижележащем коде, конвертация из одного вида исключительных ситуаций в другой. О котором, кстати, вызывающей стороне ещё и думать надо будет особо, даже если ничего осмысленного она с этой ошибкой сделать не сможет.
Ребята, после такого со скепсисом начинаешь воспринимать критику подхода с исключениями, они-де обрабатываются где попало, а не ровно в том месте, в котором есть хоть какой-то шанс сделать с этим исключением что-то осмысленное.
Поэтому, собственно, и вопрос был: почему лично Вы думаете, что такой способ лучше?