MINERVAのエラーメッセージ例です。
実行時例外は、catch/3で処理されます。 捕捉できなかった例外は、上位のレベルへ順次伝達されます。
MINERVAで作られたエラーメッセージに加えて、そのベースにあるJava からのエラーメッセージも出されます。Javaエラーは、 ファイル名が誤っている場合・ファイアーウォールを越えてアクセス された場合・ブラウザーあるいはJava処理系のインストールが不適切な場合・ Java処理系の様々なバグがある場合に出されます。
以下にいくつかの、「厳しい」エラーおよび発見的警告を含むminervacの診断 例を示します。
% MINERVA (c) IF Computer 1996,97 % http://www.ifcomputer.com/MINERVA mailto:support@ifcomputer.com% 存在しないパッケージを指示した場合には、コンパイラーからのメッセージ % が出ます。 % :- package(nonexisting). % ** minerva compiler: error(existence_error(source_sink,'nonexisting.mpk'), % [goal = open('nonexisting.mpk',read,_291,[file,buffered,text])])
main(Args) :- a(missing), b(Lone), c.
% 情報を伝達するためには変数が使用されます。 % 変数名の書き間違いの疑いがあります。 b(Variable) :- c(Var).
% この変数は'_'でマークされています。 b(_Variable) :- c.
% 慣習により、同じ述語は一箇所にまとめて記述されます。 % 述語名の書き間違いの疑いがあります。
c(whatever). b(one_more).
% 慣習により、述語は第1カラムから書き始めます。 % ','が'.'の誤りである疑いがあります。
d :- d1, d2. d3.
d1. d2. d3.
% いくつかの「実際的な」シンタックス違反。
err1 :- . err2 :- err3(. err4 :- err3). err5 :- write([a,b,c,d). err6 :- write((a,b,c,d])).
A is 5 is 7.
minervac manyerrors MINERVA 1.0 Development Server http://www.ifcomputer.com/MINERVA (c) IF Computer 1996,1997 Licenced to ifcomputer.comcompile: manyerrors.min -> manyerrors.ass *** syntax warning: singlevariable(Args) >>> file = manyerrors.min, line = 11, column = 6 *** syntax warning: singlevariable(Lone) >>> file = manyerrors.min, line = 13, column = 4 *** syntax warning: singlevariable(Variable) >>> file = manyerrors.min, line = 18, column = 3 *** syntax warning: singlevariable(Var) >>> file = manyerrors.min, line = 18, column = 18 *** compiler warning: discontiguous predicate: b / 1 *** syntax warning: term does not start at 1st column >>> file = manyerrors.min, line = 36 *** compiler warning: discontiguous predicate: d3 / 0 *** syntax error: term expected, fullstop >>> file = manyerrors.min, line = 44, column = 9 *** syntax error: term expected, fullstop >>> file = manyerrors.min, line = 45, column = 14 *** syntax error: not in bracket-context, ')' >>> file = manyerrors.min, line = 46, column = 13 *** syntax error: not in bracket-context, ')' >>> file = manyerrors.min, line = 47, column = 23 *** syntax error: not in list-context, ']' >>> file = manyerrors.min, line = 48, column = 23 *** syntax error: precedence error, is >>> file = manyerrors.min, line = 50, column = 3 *** compiler error: undefined predicate: a / 1 *** compiler error: undefined predicate: c / 0
| 冒頭へ |
|