如何处理urlfetch错误?我正在尝试muteHttpExceptions: true
,但它无效并且脚本会中断。
function myFunction() {
var result = UrlFetchApp.fetch("http://www.soccer-wallpapers.net/soccer_wallpaper/barcelona_fc_barcelona_360.jpg ", {
muteHttpExceptions: true });
Logger.log("code: " + result.getResponseCode());
Logger.log("text: " + result.getContentText());
}
但我正在尝试另一个错误网址才能正常工作。
http://img8.uploadhouse.com/fileuploads/2058/20586362b34151eb10a4001e1c44305fe41bff6.jpg
使用try和catch方法解决句柄。
try
{
var page = UrlFetchApp.fetch("http://www.soccer-wallpapers.net/soccer_wallpaper/barcelona_fc_barcelona_360.jpg");
}
catch(err)
{
Browser.msgBox("error");
}
}
答案 0 :(得分:3)
这似乎按设计工作。 muteHttpExeptions
就是这样做的。如果收到HTTP错误状态,它会告诉脚本正常进行。在您的第一个示例代码中,错误不是HTTP错误。没有Web服务器可以返回任何类型的HTTP代码。该URL不存在。到达互联网的服务无法继续,并且没有HTTP例外。
当我访问http://www.soccer-wallpapers.net/soccer_wallpaper/barcelona_fc_barcelona_360.jpg时,我收到超时消息。没有回应我的要求。看来soccer-wallpapers.net不再响应请求了。它确实有一个DNS条目,但不响应我所在位置的ping。
如果您必须处理错误的URL,可能会关闭服务器和其他服务器错误,那么您将需要使用try{}catch(){}
块。你如何处理这些错误。 muteHttpExceptions
标志更多地用于处理作为应用程序一部分的HTTP错误,而不是在脚本级别抛出错误。
答案 1 :(得分:0)
在单元格中调用的函数中,这仍然是一个问题,在这种情况下,try-catch在这种情况下被忽略