Шаг 76.
Блок try...except

    На этом шаге мы познакомимся с общими правилами использования блока 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.




Предыдущий шаг Содержание Следующий шаг