Чи є хорошою практикою застосовувати марну обробку винятків, на випадок, якщо інша частина коду не закодована правильно?
Основний приклад
Простий, тому я не втрачаю всіх :).
Скажімо, я пишу програму, яка відображатиме інформацію про людину (ім’я, адресу тощо), дані витягуються з бази даних. Скажімо, я кодую частину інтерфейсу, а хтось ще пише код запиту БД.
Тепер уявіть, що в специфікаціях вашої програми йдеться про те, що якщо інформація про людину неповна (скажімо, у базі даних відсутнє ім’я), особа, що кодує запит, повинна впоратися з цим, повернувши "NA" для відсутнього поля.
Що робити, якщо запит погано закодований і не обробляє цей випадок? Що робити, якщо хлопець, який написав запит, обробляє вас неповним результатом, а коли ви намагаєтеся відобразити інформацію, все виходить з ладу, оскільки ваш код не готовий відображати порожні речі?
Цей приклад є дуже базовим. Я вірю, що більшість із вас скажуть "це не ваша проблема, ви не відповідаєте за цю аварію". Але все одно ваша частина коду виходить з ладу.
Ще один приклад
Скажімо, зараз я той, хто пише запит. Технічні характеристики не говорять так само, як вище, але те, що хлопець, що пише запит "вставити", повинен переконатися, що всі поля заповнені при додаванні людини до бази даних, щоб уникнути неповної інформації. Чи потрібно захистити свій "вибір" запиту, щоб переконатися, що я надаю хлопцеві інтерфейсу повну інформацію?
Питання
Що робити, якщо в специфікаціях прямо не сказано "цей хлопець відповідає за цю ситуацію"? Що робити, якщо третя особа реалізує інший запит (схожий на перший, але на іншій БД) і використовує ваш код UI для його відображення, але не обробляє цей випадок у своєму коді?
Чи варто робити те, що необхідно, щоб запобігти можливій аварії, навіть якщо я не той, хто повинен поводитися з поганою справою?
Я не шукаю відповіді на кшталт "(и) він відповідальний за аварію", оскільки я тут не вирішую конфлікт, я хотів би знати, чи повинен я захищати свій код від ситуацій, це не моя відповідальність справлятися? Тут достатньо простого "якщо порожньо зробити щось".
Взагалі це питання стосується надмірної обробки винятків. Я запитую це, бо коли я працюю сам над проектом, я можу кодувати 2-3 рази подібний обробку винятків у послідовних функціях, "на всякий випадок", я щось зробив не так, і не допустив поганого випадку.