제17장 오류 처리와 디버깅

2379 단어
17.2 오류 처리
17.2.1try-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;
    }
    
  • 데이터 유형 오류
  • 통신 오류 첫 번째, 통신 오류는 형식이 잘못된 URL 또는 전송된 데이터와 관련이 있습니다.두 번째, 서버 응답 데이터가 정확하지 않을 때도 통신 오류가 발생할 수 있습니다.

  • 17.2.6 치명적 오류와 비치명적 오류 구분
    17.2.7 서버에 오류 기록
    17.3 디버깅 기술
    console    JS        :
    
    error(message):           
    info(message):            
    log(message):           
    warn(message):           
    

    17.4 일반적인 IE 오류

    좋은 웹페이지 즐겨찾기