我的脚本有几个 try-catch 块,用于发送有关错误消息的电子邮件。它有效,但只发送了一行简单的错误消息。我想要的是错误周围的行号和更多描述性消息,以帮助我确定错误发生的位置。
问问题
3408 次
2 回答
12
你可以试试这个(我在某个地方偷的),首先将捕获的异常中的所有信息转换为字符串。第二个函数可用于包装一些代码,如果它抛出异常,则将其写入某处。
function catchToString (err) {
var errInfo = "Catched something:\n";
for (var prop in err) {
errInfo += " property: "+ prop+ "\n value: ["+ err[prop]+ "]\n";
}
errInfo += " toString(): " + " value: [" + err.toString() + "]";
return errInfo;
}
function catched (f) {
try {
f ();
}
catch(err) {
Logger.log (catchToString (err));
}
}
于 2012-12-05T07:04:45.350 回答
0
上面的解决方案对我不起作用,我找到了这篇文章: https ://sites.google.com/a/mcpher.com/share/Home/excelquirks/gassnips/whereami
测试它的最简单的代码片段是:
function testError() {
try {
SpreadsheetApp.openById('Boooo');
} catch(err) {
Logger.log(err.stack);
}
}
您将记录此信息:
Exception: Unexpected error while getting the method or property openById on object SpreadsheetApp.
at testError (#Triggers:164:20)
at __GS_INTERNAL_top_function_call__.gs:1:8
代码行 (164)、文件 (#Triggers) 和函数名 (testError) 在这里。
我也试过这个库(https://github.com/RomainVialard/ErrorHandler),但现在寻找更简单的解决方案。
于 2020-04-29T06:06:04.490 回答