バックグラウンドエラーを処理します。コマンドを(Tclプロシージャを定義するように)定義することができます。バックグラウンドエラーとはイベントハンドラ、あるいはアプリケーションに直接関係ない他のコマンドの実行時に発生するエラーです。afterで指定されたコマンドを実行している時に発生するエラーは一種のバックグラウンドエラーです。非バックグラウンドエラーが発生すれば、ネストしたTclコマンドの実行によって、エラーは簡単にアプリケーションのトップレベルコードまで返されますので、アプリケーションが様々な方法でエラーを処理できます。バックグラウンドエラーが発生する場合は、Tclライブラリ内で処理が終わっているため、Tclがエラーを報告する直接の方法がありません。Tclがバックグラウンドエラーを検出した場合、エラーに関する情報を保存した後にアイドルイベントハンドラとしてbgerrorコマンドを呼び出します。bgerrorを呼び出す前に、TclはerrorInfo変数とerrorCode変数にエラー発生時の情報を保存します。その後bgerrorをこのエラーメッセージを唯一の引数として呼び出します。Tclはアプリケーションがbgerrorコマンドを呼び出し、そして、アプリケーションがなんらかの方法でbgerrorコマンドの意味を理解できるものと仮定します。Tclはstderrにメッセージを出力することでエラーを報告します。bgerrorが呼び出される前に複数のバックグラウンドエラーが発生した時、各エラーが発生した順番でbgerrorを呼び出します。bgerrorがブレーク例外で戻る場合は、未処理のエラーをスキップします(bgerrorを呼び出しません)。Tclはbgerrorに対してデフォルトインプリメントがありませんが、Tkを使うアプリケーションのためのデフォルトbgerrorプロシージャが存在します。このプロシージャがエラーメッセージを含むダイアログ・ボックスを表示させ、ユーザーにどこでエラーが発生したかを示すスタックトレースを確認するチャンスを提供します。スタックトレースをアクセスできるようにするだけでなく、このダイアログ・ボックスにはアプリケーションでカスタマイズできるボタンを配置することもできます。あるボタンでスタックトレースをファイルに保存することができます。この機能ボタンに関連付けられているデフォルト動作は保存操作です。ボタンの動作を再定義することもできます。オプションデータベース値ErrorDialog.function.textを設定すれば、ボタンの見出しを指定することができ、*ErrorDialog.function.commandを設定することによって実行させたいコマンドを設定することもできます。コマンドが評価されるとき、スタックトレースの内容テキストはこのコマンドに追加されます。オプションのどちらかが空の文字列に設定された場合、このボタンはダイアログ・ボックスに表示されません。