Next: , Up: 警告のレポート   [Contents][Index]


40.5.1 警告の基礎

すべての警告は、ユーザーに問題を説明するためのテキストのメッセージと、重大レベル(severity level)をもっています。重大レベルはシンボルです。以下は可能性のある重大レベルとその意味を、重大度の降順でリストしたものです:

:emergency

直ちに対処しなければEmacs処理が間もなく深刻に害される問題。

:error

本質的に悪いデータや状況のリポート。

:warning

本質的に悪くはないが、可能性のある問題を励起する恐れのあるデータや状況のリポート。

:debug

デバッグ中なら有用かもしれない情報のリポート。

あなたのプログラムが無効な入力データに遭遇した際には、error呼び出しによるLispエラーのシグナルするか、または重大度:errorの警告をリポートすることができます。Lispエラーのシグナルはもっとも簡単に行えることですが、それはプログラムが処理を継続できないことを意味します。間違ったデータでも処理を継続するための方法を実装するためにトラブルを受け取めたい場合には、その問題をユーザーに知らせるために重大度:errorの警告をリポートするのが正しい方法です。たとえばEmacs Lispバイトコンパイラーはこの方法によりエラーを報告して、他の関数のコンパイルを継続できます(プログラムがLispエラーをシグナルしてcondition-caseでhandleしたならユーザーがそのエラーを確認することはないだろう。これは警告としてリポートすることによりユーザーにメッセージを示すことができる)。

クラス分けのために警告にはそれぞれ警告タイプ(warning type)があります。このタイプはシンボルのリストです。最初のシンボルはそのプログラムのユーザーオプションとして使用するカスタムグループであるべきです。たとえばバイトコンパイラーの警告は警告タイプ(bytecomp)を使用します。もし望むなら、このリスト内で更にシンボルを使用することにより警告をサブカテゴリー化することもできます。

Function: display-warning type message &optional level buffer-name

この関数はメッセージとしてmessage、警告タイプとしてtypeを使用して警告をリポートする。levelは重大レベルであること。デフォルトは:warning

buffer-nameが非nilなら、それは警告をロギングするためのバッファー名を指定する。デフォルトは*Warnings*

Function: lwarn type level message &rest args

この関数は*Warnings*バッファー内のメッセージとして(format-message message args...)の値を使用して警告をリポートする。他の点ではこれはdisplay-warningと同じ。

Function: warn message &rest args

この関数はメッセージとして(format-message message args...)の値、タイプとして(emacs)、重大レベルとして:warningを使用して警告をリポートする。これは互換性のためだけに存在する。固有な警告タイプを指定するべきであり、この関数の使用は推奨しない。