[750] in Coldmud discussion meeting
Re: error_arg,error_str
daemon@ATHENA.MIT.EDU (Thu May 25 12:13:08 1995
)
From: brandon@avon.declab.usu.edu
To: coldstuff@MIT.EDU
Date: Thu, 25 May 95 10:07:12 -0600
< (It is the same as traceback()[1][1], isn't it?)
No. This is best demonstrated with an example:
@program .test1
var line, t;
catch any {
.test2();
} with handler {
t = traceback();
.tell("Traceback[1][1]: " + toliteral(t[1][1]));
.tell("Error: " + toliteral(error()));
.tell("Traceback: " + toliteral(t[1]));
for line in [2..listlen(t)]
.tell(" " + toliteral(t[line]));
}
.
@program .test2
.test3();
.
@program .test3
throw(~achoo, "Isneezeatyou.");
.
eval .test1();
Traceback[1][1]: ~achoo
Error: ~methoderr
Traceback: [~achoo, "Isneezeatyou.", 0]
['method, 'test3, #495, #495, 1]
[~achoo, 'test2, #495, #495, 1]
[~methoderr, 'test1, #495, #495, 4]
Whereas, if you change test2:
@program .test2
(> .test3() <);
.
Then re-eval:
eval .test1();
Traceback[1][1]: ~achoo
Error: ~achoo
Traceback: [~achoo, "Isneezeatyou.", 0]
['method, 'test3, #495, #495, 1]
[~achoo, 'test2, #495, #495, 1]
[~achoo, 'test1, #495, #495, 4]
Make more sense?