我还不熟悉JavaScript和Google应用脚本,这是我第一次尝试使用' Try / Catch'声明。
我正在运行连接到页面的脚本。它大部分时间都没有问题地连接,但偶尔它不会响应并抛出一个http错误(或者,响应将为空)。如果我收到错误代码,我想尝试/捕获此响应以使其第二次运行,但我并不是100%确定我理解语法,因为无论我如何格式化它,它要么永远不会抛出异常,或总是抛出它。
以下是我一直在尝试的示例代码:
function myFunction() {
var response = UrlFetchApp.fetch("google.com");
Logger.log('Response Code: ' + response.getResponseCode());
try {if(response.getResponseCode() === 200);
} catch (err) {
throw 'Page connected';
}
}
如果我可以让它发挥作用,我相信我能弄明白其余的。但是,即使日志显示我得到200的HTTP响应,它也不会抛出错误的页面连接'。
如果有人可以指导我:
1)这是实现我想要的正确方法,还是尝试/捕捉其他东西? 2)正确的语法。
我将非常感激。
答案 0 :(得分:4)
getResponseCode
不会抛出异常,但fetch
会抛出异常,因此请将其包含在try
块中:
function myFunction() {
try {
var response = UrlFetchApp.fetch("google.com");
Logger.log('Response Code: ' + response.getResponseCode());
if(response.getResponseCode() === 200) {
// something
}
} catch (err) {
// handle the error here
}
}
答案 1 :(得分:1)
截至今天,可以将muteHttpExceptions
参数放在options
的{{1}}中。它使HTTP异常静音。
由此,不需要UrlFetchApp.fetch(url, options)
- 只需检查响应代码是否正常。