The last time I [bashed exceptions] I got in a lot of trouble. In an off-the-cuff remark on the Joel on Software homepage, I wrote that I don’t like exceptions because they are, effectively, an invisible goto, which, I reasoned, is even worse than a goto you can see. Of course millions of people jumped down my throat. The only person in the world who leapt to my defense was, of course, Raymond Chen, who is, by the way, the best programmer in the world, so that has to say something, right?
© Joel Spolsky
По-русски:
Когда я в прошлый раз ругал exceptions, я получил кучу неприятностей. Я написал между делом на странице Joel on Software, что мне не нравятся exceptions, потому что они, по сути, являются невидимым goto, который, как я писал, ещё хуже, чем goto, который сразу видно. Разумеется, миллионы людей набросились на меня. Единственным человеком, выступившим в мою поддержку, был Рэймонд Чен, который, кстати сказать, является лучшим программистом в мире, а это о чём-то да говорит, так ведь?
Отсюда. И я про это писал когда-то, но мне не поверили:
Выясни, для начало, что такое try/catch, а уж потом говори глупости.
Joel Spolsky и Raymond Chen, кстати, определённо лучше меня (и вас тоже) понимают в программировании вообще и в exceptions в частности.
И, кроме того, если я говорю, что exceptions — это goto, это не значит, что я говорю, что exceptions — это плохо. И goto бывает полезен, в умелых руках. И error_reporting отключенный. Это всё инструменты, которые позволяют программировать на скорую руку, что часто бывает полезно. Главное уметь выделить моменты, когда всё это вредно.
Ссылки по теме: