Цепочка исключений
Цепочка исключений или упаковка исключений — это объектно-ориентированного программирования, метод позволяющий обрабатывать исключения путем повторного создания перехваченного исключения после его упаковки в новое исключение. Исходное исключение сохраняется как свойство (например, причина ) нового исключения. Идея состоит в том, что метод должен генерировать исключения, определенные на том же уровне абстракции, что и сам метод, но не отбрасывая информацию с нижних уровней.
Например, метод воспроизведения файла фильма может обрабатывать исключения при чтении файла, повторно создавая их внутри исключения воспроизведения фильма. Пользовательскому интерфейсу не обязательно знать, произошла ли ошибка во время чтения фрагмента байтов или вызова eof(). Ему нужно только сообщение об исключении, извлеченное из причины . Уровень пользовательского интерфейса будет иметь свой собственный набор исключений. Тот, кто интересуется причиной, может увидеть ее трассировку стека во время отладки или в соответствующем журнале.
Создание правильных исключений особенно обеспечивается проверяемыми исключениями в языке программирования Java , а начиная с версии языка 1.4 почти все исключения поддерживают цепочку.
В средах механизмов выполнения, таких как Java или .NET, существуют инструменты, которые подключаются к механизму выполнения и каждый раз, когда возникает интересующее исключение, они записывают отладочную информацию, которая существовала в памяти на момент создания исключения (значения стека и кучи). Эти инструменты называются перехватом исключений и предоставляют информацию о «основных причинах» исключений в программах Java, которые выполняются в производственных средах, средах тестирования или разработки.
Ссылки
[ редактировать ]- Гетц, Брайан (14 сентября 2001 г.). «Исключительные практики, часть 2» . JavaWorld . Проверено 19 июля 2020 г.
- Связанные исключения — учебник Sun по Java