1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wizardforcel-thinking-in-java-zh

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
第9章 异常差错控制.md 7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 09:15 d56454c

Глава 9. Обработка ошибок и исключений

Основной принцип Java заключается в том, что "ошибочный код не будет выполнен".

Как и в C++, идеальным способом поймать ошибки является обнаружение их во время компиляции, а лучше — до попытки запустить программу. Однако, не все ошибки могут быть выявлены во время компиляции. Некоторые проблемы требуют решения во время выполнения программы, позволяя человеку, допустившему ошибку, передать получателю соответствующую информацию, чтобы тот знал, как правильно обрабатывать возникшие проблемы.В C++ и других ранних языках существовало несколько подходов к решению этой задачи. Они обычно были установлены в виде соглашений, а не как часть языка программирования. В типичном случае требуется вернуть значение или установить флаг, который проверяет получатель, чтобы понять, что произошло. Однако со временем стало очевидно, что такой подход может привести к тому, что программисты, использующие библиотеку, станут менее внимательными. Они склонны думать: "Ошибки могут возникнуть в чужом коде, но не в моем". Это приводит к тому, что они часто не проверяют наличие ошибок (иногда условия ошибки кажутся настолько глупыми, что не стоит проверять; примечание ①). С другой стороны, если бы каждый вызов метода сопровождался детальной проверкой ошибок, это могло бы значительно ухудшить читаемость кода. Поскольку программисты продолжают использовать эти языки для обслуживания своих систем, им следует хорошо знать последствия такого контроля ошибок: он создает серьезные препятствия при создании крупных, надежных и легко поддерживаемых программ.①: Программисты на C могут исследовать возвращаемое значение функции printf(), чтобы получить представление о возможных проблемах.Метод решения состоит в том, чтобы исключить случайность из управления ошибками и обеспечить строгость формата. Этот метод имеет давнюю историю, так как уже в 1960-х годах в операционных системах использовались механизмы "обработки исключений"; даже можно проследить до команды on error goto в BASIC. Однако управление исключениями в C++ основано на Ada, а Java, в свою очередь, основана на C++ (хотя она кажется более похожей на Object Pascal). "Исключение" (Exception) — это понятие, которое означает "необычную" ситуацию, то есть состояние, выходящее за рамки нормального поведения системы. Когда возникает проблема, мы можем не знать конкретного способа её решения, но точно будем осведомлены о том, что продолжение выполнения операций без учёта этой проблемы недопустимо. В такой ситуации необходимо немедленно прекратить выполнение и указать, кто и где столкнулся с данной проблемой, а также какие действия следует предпринять в ответ. Однако для полноты решения местной информации может оказаться недостаточно. Поэтому нам потребуется передать эту информацию более высокому уровню управления, чтобы он мог принять правильное решение (подобно цепочке командования). Ещё одним преимуществом механизма исключений является возможность упрощения кода управления ошибками. Больше нет необходимости проверять конкретную ошибку и контролировать её в нескольких местах программы.Кроме того, не требуется проверка ошибок при вызовах методов (поскольку гарантируется, что кто-то поймает эти исключения здесь). Нужно лишь обрабатывать проблемы в одном месте: "модуль управления исключениями" или "контроллер исключений". Это позволяет эффективно сократить объём кода и отделить код, который описывает конкретные действия, от кода, предназначенного для исправления ошибок. Обычно код для чтения, записи и отладки становится более структурированным.Поскольку управление исключениями осуществляется за счет Java компилятора, глубокое понимание этого процесса не обязательно для правильного использования большого количества примеров из этой книги. В данной главе представлены необходимые коды для корректного управления исключениями и объясняется, как создавать свои исключения при возникновении проблем в методах.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wizardforcel-thinking-in-java-zh.git
git@api.gitlife.ru:oschina-mirror/wizardforcel-thinking-in-java-zh.git
oschina-mirror
wizardforcel-thinking-in-java-zh
wizardforcel-thinking-in-java-zh
master