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