На этом шаге мы приведем правила совместного использования рассмотренных блоков.
Совместное использование вложенных блоков try...except и try...finally позволяет одновременно извлечь преимущества, предоставляемые каждым из блоков: возможность описания реакции на конкретные исключения с помощью on...do в блоке try...except и возможность выполнить завершающую группу обязательных операторов вне зависимости от возникновения каких-либо исключительных ситуаций с помощью блока try...finally. На практике находят применение оба варианта вложенных блоков, структуру которых неформально можно представить в следующем виде.
Первый вариант:
try try <СписокОператоров1> except on <Исключение1> do <Оператор1>; on <Исключение2> do <Оператор2>; . . . . on <ИсключениеN> do <ОператорN> else <СписокОператоров2> end; finally <СписокОператоров3> end;
Второй вариант:
try try <СписокОператоров1> finally <СписокОператоров2> end; except on <Исключение1> do <Оператор1>; on <Исключение2> do <Оператор2>; . . . . on <ИсключениеN> do <ОператорN> else <СписокОператоров3> end;
На следующем шаге мы рассмотрим пример использования рассмотренных блоков.