66 lines
4.5 KiB
HTML
66 lines
4.5 KiB
HTML
<!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>
|
||
|