projman/hlp/ru/tcl/bgerror.html
2018-02-05 17:23:37 +03:00

66 lines
4.5 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
<html>
<head>
<title>bgerror</title>
</head>
<body>
<h1>bgerror</h1>
<p>Команда <strong>bgerror</strong> предназначена для обработки фоновых
ошибок.</p>
<pre>
<strong>bgerror</strong> <em>сообщение</em>
</pre>
<h2>ОПИСАНИЕ</h2>
<p> В Tcl нет встроенной команды <strong>bgerror</strong>. Если в приложении
тем не менее необходимо обрабатывать фоновые ошибки,
пользователь может определить собственную команду
<strong>bgerror</strong>, например, как Tcl-процедуру.</p>
<p>Фоновые ошибки - это ошибки в командах, которые не вызваны
непосредственно из приложения. Например, фоновыми являются
ошибки в командах, вызванных с помощью конструкции
<a href=after.html><strong>after</strong></a>. Для нефоновых ошибок
сообщение об ошибке возвращается через вложенные вызовы команд,
пока не достигнет верхнего уровня приложения. После этого
приложение выдает сообщение об ошибке в одной из команд верхнего
уровня. При фоновой ошибке подобный процесс не достигает команд
верхнего уровня и формирование сообщения об ошибке оказывается
затруднительным.</p>
<p>Когда Tcl обнаруживает фоновую ошибку, он сохраняет информацию
об ошибке и вызывает команду <strong>bgerror</strong> с помощью
обработчика событий. Перед вызовом <strong>bgerror</strong>
восстанавливаются значения переменных <a href=
tclvars.html#errorInfo><strong>errorInfo</strong></a> и <a href=
tclvars.html#errorCode><strong>errorCode</strong></a>, которые были при
обнаружении ошибки. После этого вызывается команда
<strong>bgerror</strong> с единственным аргументом - сообщением об ошибке.
Предполагается, что в приложении определена команда
<strong>bgerror</strong> и что она выдает сообщение об ошибке надлежащим
образом. Если при выполнении команды <strong>bgerror</strong> не произошло
новой ошибки, возвращаемый ею результат игнорируется.</p>
<p>Если при исполнении команды <strong>bgerror</strong> произошла новая
ошибка (например, если эта команда не существует), сообщение об
ошибке поступает в канал вывода ошибок.</p>
<p>Если до вызова обработчиком событий команды <strong>bgerror</strong>
произошло несколько фоновых ошибок, то, как правило, команда
будет вызвана для каждой из обнаруженных ошибок. Однако, если
сама команда <strong>bgerror</strong> возвращает код break (см. описание
команды <a href=return.html><strong>return</strong></a>),
последующие ее вызовы пропускаются.</p>
<p>В чисто Tcl-приложениях команда <strong>bgerror</strong> не
реализована. Однако, в Tk-приложениях определена процедура
<strong>bgerror</strong>, которая выводит сообщение об ошибке в диалоговое
окно и позволяет пользователю просмотреть стек, описывающий, где
именно эта ошибка произошла.</p>
</body>
</html>