UrlFetchApp.fetch
에서 예외를 잡을 방법이 있습니까?UrlFetchApp.fetch 예외를 catch하는 방법
은 내가 응답 코드를 확인 response.getResponseCode()
을 사용할 수 있습니다 생각하지만 난 404 오류가있는 경우, 스크립트가 계속 단지 왜 그렇게하지 UrlFetchApp.fetch
UrlFetchApp.fetch
에서 예외를 잡을 방법이 있습니까?UrlFetchApp.fetch 예외를 catch하는 방법
은 내가 응답 코드를 확인 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
오류 코드를 가져 오기 위해 구문 분석 할 수있는 오류 문자열을 전자로 받게됩니다. –
트릭이 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
블록을 사용해야 할 수도 있습니다.
고마워,이게 내가 원하는거야, 구글이 문서가 있어야합니다. – louis
감사합니다. 항상이 기능을 잊어 버립니다. – oshliaer