Мені завжди доводиться боротися з цим ... намагаючись знайти правильний баланс між спробою / ловом і кодом, що не стає цим нецензурним безладдям вкладок, дужок та винятків, що повертаються назад до стека викликів, як гаряча картопля. Наприклад, у мене є програма, яку я зараз розробляю, яка використовує SQLite. У мене є інтерфейс Бази даних, який абстрагує дзвінки SQLite, і Модель, яка приймає речі для входу / виходу з бази даних ... Отже, якщо / коли виникає виняток SQLite, він повинен перейти до Моделі (хто його назвав ), хто повинен передати це тому, хто назвав AddRecord / DeleteRecord / що завгодно ...
Я прихильник винятків, не повертали коди помилок , тому що коди помилок можуть бути проігноровані, забуті, і т.д., в той час як виняток , за суті має бути оброблено ( як належне, я міг би зловити і перейти відразу ...) Я певне, що має бути кращий спосіб, ніж те, що я зараз відбуваю.
Редагувати: я повинен був би сформулювати це дещо інакше. Я розумію, що потрібно перекидати як різні типи і подібні, я це дуже погано висловив, і це моя вина. Моє запитання: як найкраще зберегти чистий код, роблячи це? Він просто починає відчувати себе надзвичайно захаращеним через деякий час.