# return

Команда осуществляет возврат из процедуры.

## СИНТАКСИС

          return ?-code code? ?-errorinfo info? ?-errorcode code? ?string?

## ОПИСАНИЕ

Команда немедленно осуществляет возврат из текущей процедуры (или команды верхнего уровня, или команды source) со значением, заданным string. Если аргумент string не задан, возвращает пустую строку.

Обычно опция -code не используется, и процедура завершается успешно (с кодом завершения TCL_OK). Однако, ее можно использовать для генерации других кодов возврата. Ниже перечислены возможные коды.

ok
  Успешное завершение. То же самое, что отсутствие кода.
error
  Возвращает ошибку. То же самое, что использовать команду error для прекращения выполнения процедуры за исключением обработки переменных errorInfo и errorCode (см. ниже).
return
  Текущая процедура вернет код TCL_RETURN, который вызовет немедленный возврат также и из вызывающей процедуры.
break
  Текущая процедура вернет код TCL_BREAK, который вызовет немедленное прекращение выполнения самого внутреннего из вложенных циклов, из которого была вызвана процедура.
continue
  Текущая процедура вернет код TCL_CONTINUE, который вызовет немедленное прекращение выполнения текущей итерации самого внутреннего из вложенных циклов, из которого была вызвана процедура.
value
  Значение value должно быть целым числом. Оно будет возвращено как код выполнения процедуры.

Опция -code используется относительно редко. Она предусмотрена для того, чтобы процедуры, реализующие новые управляющие команды, могли вернуть вызывающим их процедурам исключительные условия.

Опции -errorinfo и -errorcode могут использоваться совместно с code error, чтобы вернуть дополнительную информацию о сгенерированной ошибке. В остальных случаях они игнорируются.

Опция -errorinfo используется для того, чтобы задать исходное значение переменной errorInfo. Если она не будет задана, то в переменную errorInfo будет включена информация о вызове процедуры, вернувшей ошибку, и о более высоких уровнях стека, но не информация непосредственно об ошибке внутри процедуры. Чаще всего для формирования переменной info используется сообщение команды catch, обнаружившей ошибку в процедуре.

Если опция -errorcode указана, она позволяет задать значение переменной errorCode. В противном случае ей будет присвоено значение NONE.