projman/hlp/ru/tcl/bgerror.html

66 lines
4.5 KiB
HTML
Raw Normal View History

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