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


42.5.1 警告の基礎

すべての警告はユーザーに問題を説明するためのテキストのメッセージと、それに関連付けられた重大度レベル(severity level)をもっています。重大度レベルはシンボルです。以下に想定される重大度レベルと意味を重大度の降順で示します:

:emergency

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

:error

本質的に悪いデータや状況に関するレポート。

:warning

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

:debug

ユーザーが警告を発するLispプログラムをデバッグ中に役に立つかもしれない情報のレポート。

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

重大度レベルの他にも、クラス分けのために警告にはそれぞれ警告タイプ(warning type)があります。このタイプはシンボル、またはシンボルのリストです。シンボルならそのプログラムのユーザーオプションとして使用するカスタムグループ、リストならリストの1つ目の要素がそのカスタムグループであることが必要です。たとえばバイトコンパイラーの警告は警告タイプ(bytecomp)を使用しています。警告タイプがリストの場合には、後続する2つ目以降の要素はそれぞれが警告のサブカテゴリーを表す任意のシンボルであることが必要です。これらの要素は、その警告の特性についてよりよい説明を表示するために使用されることでしょう。

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

この関数は警告テキストとして文字列message、警告タイプとしてtypeを使用して警告をレポートする。levelは重大度レベルであること。省略またはnilの場合のデフォルトは: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を使用して警告をレポートする。これは互換性のためだけに存在する。固有な警告タイプを指定するべきであり、この関数の使用は推奨しない。

This page has generated for branch:emacs-30, commit:ab5505a8acf795c0a0a2745dd6fb666954c6a4bb to check Japanese translation.