UrlFetchApp.fetch
から例外をキャッチする方法はありますか?UrlFetchApp.fetch例外をキャッチする方法
私は応答コードをチェックするためにresponse.getResponseCode()
を使用することができます思ったが、私は、404エラーが発生した場合などのために、スクリプトが継続しないと、あなたがいない理由だけでUrlFetchApp.fetch
UrlFetchApp.fetch
から例外をキャッチする方法はありますか?UrlFetchApp.fetch例外をキャッチする方法
私は応答コードをチェックするためにresponse.getResponseCode()
を使用することができます思ったが、私は、404エラーが発生した場合などのために、スクリプトが継続しないと、あなたがいない理由だけでUrlFetchApp.fetch
編集:このパラメータは、現在documented hereです。
文書化されていない詳細オプション "muteHttpExceptions"を使用すると、200以外のステータスコードが返されたときに例外を無効にし、応答のステータスコードを調べることができます。詳細情報と例はthis issueにあります。
で停止することはできませんよトライキャッチを使用し、catchブロックでエラーを処理
try{
//Your original code, UrlFetch etc
}
catch(e){
// Logger.log(e);
//Handle error e here
// Parse e to get the response code
}
迅速な対応をありがとうございます。 例外が発生した場合の応答コードは何ですか? – louis
エラーコードを取得するために解析できるエラー文字列がeで表示されます。 –
muteHttpExceptions
のパラメータをUrlFetchApp.fetch()
に渡しています。ここで
例(未テスト):何らかの理由で
var payload = {"value": "key"}
var response = UrlFetchApp.fetch(
url,
{
method: "PUT",
contentType: "application/json",
payload: JSON.stringify(payload),
muteHttpExceptions: true,
}
);
var responseCode = response.getResponseCode()
var responseBody = response.getContentText()
if (responseCode === 200) {
var responseJson = JSON.parse(responseBody)
// ...
} else {
Logger.log(Utilities.formatString("Request failed. Expected 200, got %d: %s", responseCode, responseBody))
// ...
}
URLが利用できない場合、それはまだあなたので、エラーを投げているように見えます(たとえば、あなたが使用しようとしているサービスがダウンしています)ブロックtry/catch
を使用する必要があります。
ありがとう、これは私が欲しいものです、Googleはこれを文書化する必要があります。 – louis
ありがとう、私はいつもこの機能について忘れています。 – oshliaer