General statistics
List of Youtube channels
Youtube commenter search
Distinguished comments
About
0imax
Sergey Nemchinskiy
comments
Comments by "0imax" (@0imax) on "Как правильно делать Error handling по "Clean Code" Роберта Мартина?" video.
Эксепшен поможет прокинуть ошибку напрямую от места возникновения проблемы до места решения этой проблемы, минуя промежуточные вызовы. Например, вместо возврата строки "failed" и проверки её там наверху, можно просто бросить эксепшн, наверху в try блоке написать весь код так, будто всё прошло хорошо, а в catch блоке ловить все ошибки и выводить соответствующие окна. Таким образом код нормального поведения программы отделяется от обработки ошибок, не захламляется ими. Плюс, если какая-то ошибка произошла, а обработчика нет - это не останется незамеченным.
3
Идеального варианта обработки ошибок пока не придумали, потому используем лучшее из того, что есть. Да и кроме обработчиков исключений, в больших системах всегда куча неиспользуемого кода, про который просто забыли, или который срабатывает раз в тысячу лет. Думаю, это допустимая плата за те плюсы, которые дают исключения по сравнению с кодами возврата.
1
Подписался 6 лет назад, сейчас поставил лайк и пошёл писать говнокод хороший код.
1
Qt весь построен на кодах возврата :) Но мне пофиг, юзаю эксепшены просто потому что это удобнее, когда надо прокинуть ошибку через десяток вызовов.
1
@MaceUA Не, у меня они гуляют между вызовами собственных классов. В частности, ошибки связи между ПК и девайсом передаются наверх именно через исключения. За время работы приложения их может произойти сколько угодно, но на производительности это никак не сказывается - таймаут на ответ от железяки на много порядков больше, чем накладные расходы в исключениях :)
1