Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何捕获UrlFetchApp.fetch异常_Google Apps Script_Urlfetch - Fatal编程技术网

Google apps script 如何捕获UrlFetchApp.fetch异常

Google apps script 如何捕获UrlFetchApp.fetch异常,google-apps-script,urlfetch,Google Apps Script,Urlfetch,是否有任何方法可以从UrlFetchApp.fetch捕获异常 我想我可以使用response.getResponseCode()来检查响应代码,但是我不能,例如,当出现404错误时,脚本不会继续,只是停在UrlFetchApp.fetch为什么不使用try-catch并在catch块中处理错误 try{ //Your original code, UrlFetch etc } catch(e){ // Logger.log(e); //Handle error

是否有任何方法可以从
UrlFetchApp.fetch
捕获异常


我想我可以使用
response.getResponseCode()
来检查响应代码,但是我不能,例如,当出现404错误时,脚本不会继续,只是停在
UrlFetchApp.fetch

为什么不使用try-catch并在catch块中处理错误

try{
    //Your original code, UrlFetch etc
  }
  catch(e){
    // Logger.log(e);
    //Handle error e here 
    // Parse e to get the response code
  }

编辑:此参数现在为空


当返回非200状态代码时,可以使用未记录的高级选项“muteHttpExceptions”禁用异常,然后检查响应的状态代码。有关更多信息和示例,请访问。

技巧是传递的
muteHttpExceptions
参数

下面是一个示例(未经测试):


由于某些原因,如果URL不可用(例如,您尝试使用的服务已关闭),它看起来仍在抛出错误,因此您可能仍需要使用
try/catch
块。

您可以手动解析捕获到的错误,但不建议这样做。捕获异常(在禁用
muteHttpExceptions
的情况下引发)时,错误对象的格式如下:

{
   "message": "Request failed for ___ returned code___. Truncated server response: {___SERVER_RESPONSE_OBJECT___} (use muteHttpExceptions option to examine full response)",
   "name": "Exception",
   "fileName": "___FILE_NAME___",
   "lineNumber": ___LINE_NUMBER___,
   "stack": "___STACK_DETAILS___"
}
如果出于某种原因不想使用
muteHttpExceptions
,可以捕获异常
e
,查看
e.message
,将文本分为“截断的服务器响应:”和“(使用muteHttpExceptions选项检查完整响应)”、JSON.parse()和,返回的对象将是api调用返回的错误

我不建议将其置于
muteHttpExceptions
之上,只是想展示以这种方式获取错误对象的最佳方法


无论如何,请尝试捕获您的
UrlFetchApp.fetch()
调用,以确保捕获未处理的异常,如404。

感谢您的快速响应。当出现异常时,是否有可能找出响应代码?您将在e中获得一个错误字符串,您可以对其进行解析以获取错误代码。但是解析
e
并不是那么简单,因为UrlFetchApp将响应封装在文本消息中。。我不建议这种方法。
{
   "message": "Request failed for ___ returned code___. Truncated server response: {___SERVER_RESPONSE_OBJECT___} (use muteHttpExceptions option to examine full response)",
   "name": "Exception",
   "fileName": "___FILE_NAME___",
   "lineNumber": ___LINE_NUMBER___,
   "stack": "___STACK_DETAILS___"
}