私のスクリプトには、エラー メッセージに関するメールを送信するいくつかの try-catch ブロックがあります。動作しますが、単純な 1 行のエラー メッセージしか送信されません。私が欲しいのは、エラーの周りの行番号と、エラーが発生している場所を特定するのに役立つより説明的なメッセージです。
質問する
3408 次
2 に答える
12
これを試すことができます (どこかで盗みました)。最初に、キャッチされた例外のすべての情報を文字列に変換します。2 番目の関数は、一部のコードをラップするために使用でき、excetopn がスローされた場合はどこかに書き込みます。
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 に答える