Почему важна обработка ошибок?

Мне было поручено написать руководство по кодированию для моей команды, и все шло отлично, пока мой менеджер не попросил меня написать объяснение Почему важна обработка ошибок.

Я знаю это инстинктивно, но как выразить это словами?

Сначала я попытался погуглить, но ничего не вышло, поэтому теперь я спрашиваю своих коллег-мастеров кодирования.

Знайте свои исключения!
Знайте свои исключения!
В Java исключение - это событие, возникающее во время выполнения программы, которое нарушает нормальный ход выполнения инструкций программы. Когда...
12
0
13 194
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Why Error Handling is Important.

Из-за того, что может случиться, если вы этого не сделаете.

Если вы способны писать руководства по кодированию, вы наверняка справитесь с этим?

Возможно, Пол. Но иногда даже самые лучшие из нас сомневаются, как что-то сказать. И StackOverflow - всегда ЛУЧШЕЕ место, где можно задать вопросы, связанные с кодированием.

Paulo Santos 15.12.2008 15:44

Да, я болен, поэтому сегодня я сварливый, но иногда мне кажется, что те, кто задает вопросы, могут сначала приложить немного усилий ...

The Archetypal Paul 15.12.2008 16:13

Обработка ошибок важна, потому что она упрощает правильное использование вашего кода конечными пользователями. Еще одна важная проблема заключается в том, что это упрощает сопровождение кода. Обработка ошибок упрощает встраивание входных спецификаций в код, поэтому вам не нужно искать дизайн при написании, а затем поддерживать код.

Сначала я бы спросил, важно ли это?

Я видел (уродливый) код, в котором некоторые ошибки игнорировались (например, пустая ссылка)

Итак, какие типы ошибок важно обрабатывать?

Есть большая разница между System.IO.FileNotFoundException, System.Data.SqlClient.SqlException и System.ApplicationException.

Ответ принят как подходящий

ИМХО ... большинство программ очень большие, очень сложные и написаны несколькими людьми. Такое сочетание факторов почти всегда приводит к какой-то программной ошибке. Дело не в том, что программисты злые, глупые или ленивые ... просто в спешке, чтобы уложиться в срок, мы часто не предвидим все возможное, что пользователь может сделать с нашими программами, и что-то обязательно произойдет.

В этом отношении обработка ошибок служит двум целям.

  • Во-первых, он позволяет пользователю относительно дружелюбно узнать, что что-то пошло не так и что ему следует связаться с отделом технической поддержки или что кто-то из службы технической поддержки был уведомлен. Как мы все знаем, существует ОГРОМНАЯ разница между получением довольно неприятного, пронизанного технологиями уведомления, в котором говорится что-то вроде «Объект не настроен для ссылки на объект» и т. д... и получением красивого всплывающего окна с сообщением: «Произошла ошибка. проблема. Обратитесь в службу поддержки ".

  • Во-вторых, это позволяет программисту добавить некоторые тонкости, чтобы помочь в отладке проблем. Например ... в моем коде я обычно пишу собственный обработчик ошибок, который принимает ряд параметров и возвращает красивое отформатированное сообщение, которое можно отправить по электронной почте в службу поддержки, спрятать в журнале событий или записать в журнал. файл и т. д. Сообщение об ошибке будет содержать столько информации, сколько я смогу втиснуть, чтобы помочь мне выяснить, что произошло, трассировки стека, параметры функций, вызовы базы данных ... вы называете это. Мне нравятся подробные сообщения об ошибках, которые помогают мне понять, что на самом деле произошло. Пользователь никогда не должен ничего из этого видеть, он получает приятное, дружелюбное сообщение выше, дающее ему знать, что кто-то может понять, что происходит.

Это довольно просто объяснить непрофессиональному менеджеру:

Если вы обработаете свои ошибки, ваша программа, скорее всего, продолжит работать после ошибки, ваш клиент, скорее всего, продолжит работу, и вы можете предоставить отчет о том, как именно произошла ошибка, чтобы вы могли ее исправить.

Если вы не обработаете свои ошибки, ваша программа может выйти из строя, потерять всю работу ваших клиентов, и вы, вероятно, не узнаете, где произошла ошибка (при условии, что вы не обработаете фатальное исключение с помощью трассировки стека).

Еще одна важная причина, по которой обработка ошибок так важна, - это безопасность! Некоторые типы ошибок, если их не обработать должным образом, могут оставить программу и базовую операционную систему в уязвимом состоянии. Обработка ошибок должна быть преднамеренным и хорошо продуманным процессом, потому что даже при грамотной обработке ошибки могут записываться в файлы журналов или выводить на экран сообщения об ошибках, которые предоставляют потенциальным злоумышленникам очень ценную информацию, которую они могут использовать позже, чтобы воспользоваться конкретными уязвимостями.

Другие вопросы по теме