Цепочка исключений - Exception chaining

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

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

Выбрасывание правильных исключений особенно необходимо проверенные исключения в Язык программирования Java, а начиная с версии 1.4 почти все исключения поддерживают цепочку.

В средах среды выполнения, таких как Java или .NET, существуют инструменты, которые подключаются к механизму выполнения, и каждый раз, когда возникает интересующее исключение, они записывают отладочную информацию, которая существовала в памяти на момент создания исключения (значения стека и кучи). Эти инструменты называются перехватом исключений, и они предоставляют информацию об «основной причине» исключений в программах Java, которые выполняются в производственных средах, средах тестирования или разработки.

Рекомендации

  • Гетц, Брайан (14 сентября 2001 г.). «Исключительные практики, часть 2». JavaWorld. Получено 2020-07-19.
  • Связанные исключения - Руководство Sun по Java