반응형
JSON.parse에서 예외를 포착하는 적절한 방법
사용하고 있다JSON.parse
404 응답을 포함할 수 있습니다.404를 반환할 경우 예외를 포착하여 다른 코드를 실행할 수 있는 방법이 있습니까?
data = JSON.parse(response, function (key, value) {
var type;
if (value && typeof value === 'object') {
type = value.type;
if (typeof type === 'string' && typeof window[type] === 'function') {
return new(window[type])(value);
}
}
return value;
});
iframe에 무언가를 게시하고 iframe의 내용을 json parse로 다시 읽습니다.그래서 가끔 json 문자열이 아니라
이것을 시험해 보세요.
if(response) {
try {
a = JSON.parse(response);
} catch(e) {
alert(e); // error in the above string (in this case, yes)!
}
}
에러와 404 statusCode를 체크하여try {} catch (err) {}
.
다음과 같이 시험해 볼 수 있습니다.
const req = new XMLHttpRequest();
req.onreadystatechange = function() {
if (req.status == 404) {
console.log("404");
return false;
}
if (!(req.readyState == 4 && req.status == 200))
return false;
const json = (function(raw) {
try {
return JSON.parse(raw);
} catch (err) {
return false;
}
})(req.responseText);
if (!json)
return false;
document.body.innerHTML = "Your city : " + json.city + "<br>Your isp : " + json.org;
};
req.open("GET", "https://ipapi.co/json/", true);
req.send();
자세한 내용은 이쪽:
저는 Javascript를 처음 접합니다.하지만 제가 이해한 것은 다음과 같습니다.JSON.parse()
돌아온다SyntaxError
유효하지 않은 JSON이 첫 번째 파라미터로 제공되는 경우 예외입니다.그래서 그 예외는 다음과 같이 잡는 것이 좋을 것 같아요.
try {
let sData = `
{
"id": "1",
"name": "UbuntuGod",
}
`;
console.log(JSON.parse(sData));
} catch (objError) {
if (objError instanceof SyntaxError) {
console.error(objError.name);
} else {
console.error(objError.message);
}
}
'first parameter'라는 단어를 굵게 한 이유는JSON.parse()
는 리바이버 함수를 두 번째 파라미터로 받아들입니다.
이 기능을 위해 일반화된 기능을 찾고 있다면 시도해 보십시오.
const parseJSON = (inputString, fallback) => {
if (inputString) {
try {
return JSON.parse(inputString);
} catch (e) {
return fallback;
}
}
};
이것을 ES6의 베스트 프랙티스로 사용하는 것을 추천합니다.사용.Error
물건
try {
myResponse = JSON.parse(response);
} catch (e) {
throw new Error('Error occured: ', e);
}
위의 답변도 도움이 됩니다.
다음과 같이 시험해 보십시오.
Promise.resolve(JSON.parse(response)).then(json => {
response = json ;
}).catch(err => {
response = response
});
JSON.parse() 인수를 JSON 개체로 해석할 수 없는 경우 이 약속은 해결되지 않습니다.
Promise.resolve(JSON.parse('{"key":"value"}')).then(json => {
console.log(json);
}).catch(err => {
console.log(err);
});
언급URL : https://stackoverflow.com/questions/4467044/proper-way-to-catch-exception-from-json-parse
반응형
'programing' 카테고리의 다른 글
Mac OS Lion 명령줄에서 MySQL 서버를 시작하는 방법 (0) | 2022.09.13 |
---|---|
jQuery 개체 검사에서 jQuery 버전 가져오기 (0) | 2022.09.07 |
MySQL에서 정수 및 숫자 열을 PHP에서 정수 및 숫자로 반환하려면 어떻게 해야 합니까? (0) | 2022.09.07 |
sql에 두 개의 varchar를 곱하다 (0) | 2022.09.06 |
태플을 목록으로 변환한 후 되돌리기 (0) | 2022.09.06 |