제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에 따라 라이센스가 부여됩니다.