Если вы осмотрите объект Error
, error
, полученный вашим catch
блоком, вы можете заметить, что у него есть несколько свойств, к которым можно получить доступ:
try {
...
} catch (error) {
const parts = {};
for (var i in error) {
parts[i] = error[i];
}
console.error({message: "Apps Script error object decomposition", error: error, parts: parts});
}
Пример журнала Stackdriver:
Таким образом, вы можете включить полную трассировку стека вашей ошибки в ваши журналы, а также в файл и строкуномер:
try {
...
} catch (e) {
console.error({
message: "An error occurred",
errMsg: e.message,
line: e.lineNumber,
fileName: e.fileName,
stackTrace: e.stack
});
if (<some conditions>) {
// update message:
e.message = "Unhandled error in so-and-so: " + e.message;
// Re-raise with the same trace info by re-throwing it:
throw e;
}
}