제17장 오류 처리와 디버깅
17.2.1
try-catch
문 1,try{
//
} catch (error) {
//
} finally {
// try catch ,
}
try{
return 2;
} catch (error) {
return 1;
} finally {
return 0;
}
앞에서 말했듯이try와catch에서 어떤 코드를 실행하든finally는 실행하기 때문에 이것은return0으로 되돌아옵니다.
2. 오류 유형
(1) Error는 기본 유형이며, 기타 오류 유형은 해당 유형에서 상속됩니다.
(2) EvalError: eval()을 함수로 호출하지 않으면 다음과 같은 오류가 발생합니다.
new eval();
eval = foo;
(3) RangeError: 값이 범위를 벗어나면 다음과 같이 트리거합니다.
new Array(-20);
(4) ReferenceError: 객체를 찾을 수 없는 경우 다음과 같은 오류가 발생합니다.
var obj = x;
(5) SyntaxError: 구문 오류의 JS 문자열을 eval() 함수로 가져오면 다음과 같은 오류가 발생합니다.
eval('a ++ b')
(6) TypeError: 변수에 예기치 않은 유형이 저장되어 있거나 존재하지 않는 메서드에 액세스하면 다음과 같은 오류가 발생합니다.
var o = new 10;
서로 다른 오류 유형을 이용하여 이상에 관한 더 많은 정보를 얻을 수 있다
try {
someFunction();
} catch (error){
if ( error instanceof TypeError ){
//
} else if ( error instanceof ReferenceError ){
//
} else {
//
}
}
17.2. 오류 던지기
throw 조작부호를 만났을 때 코드는 즉시 실행을 정지합니다.try-catch 문장이 던져진 값을 포착할 때만 코드가 계속 실행됩니다.
위의 오류 형식과 결합하여throw를 사용할 수 있습니다
throw new TypeError('What type of variable do you take me of?')
17.2.3 오류 이벤트
try-catch를 통해 처리되지 않은 모든 오류는 window 대상의 error 이벤트를 터치합니다.
/*
* message:
* ur: url
* line:
*/
window.onerror = function(message, url, line){
alert(message);
}
17.2.4 오류 처리 정책
17.2.5 일반적인 오류 유형
function concat(str1, str2, str3){
var result = str1 + str2;
if ( str3 ){ // , str3 0,
result += str3;
}
return result;
}
17.2.6 치명적 오류와 비치명적 오류 구분
17.2.7 서버에 오류 기록
17.3 디버깅 기술
console JS :
error(message):
info(message):
log(message):
warn(message):
17.4 일반적인 IE 오류
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.