<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN> <html> <head> <title>return</title> </head> <body> <h1>return</h1> <p>Команда осуществляет возврат из процедуры.</p> <h2>СИНТАКСИС</h2> <pre> <strong>return</strong> ?<strong>-code</strong> <em>code</em>? ?<strong>-errorinfo</strong> <em>info</em>? ?<strong>-errorcode</strong> <em>code</em>? ?<em>string</em>? </pre> <h2>ОПИСАНИЕ</h2> <p>Команда немедленно осуществляет возврат из текущей процедуры (или команды верхнего уровня, или команды <strong><a href=source.html>source</a></strong>) со значением, заданным <em>string</em>. Если аргумент <em>string</em> не задан, возвращает пустую строку.</p> <p>Обычно опция <strong>-code</strong> не используется, и процедура завершается успешно (с кодом завершения TCL_OK). Однако, ее можно использовать для генерации других кодов возврата. Ниже перечислены возможные коды.</p> <dl> <dt><strong>ok</strong></dt> <dd>Успешное завершение. То же самое, что отсутствие кода.</dd> <dt><strong>error</strong></dt> <dd>Возвращает ошибку. То же самое, что использовать команду <strong><a href=error.html>error</a></strong> для прекращения выполнения процедуры за исключением обработки переменных <strong><a href=tclvars.html#errorInfo>errorInfo</a></strong> и <strong><a href=tclvars.html#errorCode>errorCode</a></strong> (см. ниже).</dd> <dt><strong>return</strong></dt> <dd>Текущая процедура вернет код TCL_RETURN, который вызовет немедленный возврат также и из вызывающей процедуры.</dd> <dt><strong>break</strong></dt> <dd>Текущая процедура вернет код TCL_BREAK, который вызовет немедленное прекращение выполнения самого внутреннего из вложенных циклов, из которого была вызвана процедура.</dd> <dt><strong>continue</strong></dt> <dd>Текущая процедура вернет код TCL_CONTINUE, который вызовет немедленное прекращение выполнения текущей итерации самого внутреннего из вложенных циклов, из которого была вызвана процедура.</dd> <dt><em>value</em></dt> <dd>Значение <em>value</em> должно быть целым числом. Оно будет возвращено как код выполнения процедуры.</dd> </dl> <p>Опция <strong>-code</strong> используется относительно редко. Она предусмотрена для того, чтобы процедуры, реализующие новые управляющие команды, могли вернуть вызывающим их процедурам исключительные условия.</p> <p>Опции <strong>-errorinfo</strong> и <strong>-errorcode</strong> могут использоваться совместно с <strong>code error</strong>, чтобы вернуть дополнительную информацию о сгенерированной ошибке. В остальных случаях они игнорируются.</p> <p>Опция <strong>-errorinfo</strong> используется для того, чтобы задать исходное значение переменной <strong><a href= tclvars.html#errorInfo>errorInfo</a></strong>. Если она не будет задана, то в переменную <strong><a href=tclvars.html#errorInfo>errorInfo</a></strong> будет включена информация о вызове процедуры, вернувшей ошибку, и о более высоких уровнях стека, но не информация непосредственно об ошибке внутри процедуры. Чаще всего для формирования переменной <em>info</em> используется сообщение команды <strong><a href=catch.html#catch>catch</a></strong>, обнаружившей ошибку в процедуре.</p> <p>Если опция <strong>-errorcode</strong> указана, она позволяет задать значение переменной <strong><a href=tclvars.html#errorCode> errorCode</a></strong>. В противном случае ей будет присвоено значение <strong>NONE</strong>.</p> </body> </html>