2014-05-21 4 views
78

상당히 큰 프로젝트에 typescript를 사용하고 있으며 오류를 사용하기위한 표준이 무엇인지 궁금합니다. 예를 들어, 나는 자바에서 경계 예외에서 인덱스를 손으로 말 :TypeScript의 오류 사용

throw new IndexOutOfBoundsException(); 

는 타이프에 해당하는 문은 다음과 같습니다

throw new Error("Index Out of Bounds"); 

어떤 다른 방법으로 나는이 작업을 수행 할 수

? 허용되는 표준은 무엇입니까?

답변

94

Someone posted this link to the MDN in a comment, and I think it was very helpful 가장 일반적으로 가장 구체적인에서 시작/다른 + instanceof 경우 유형 사용을 확인하십시오. 그것은 매우 철저하게 ErrorTypes 같은 것들을 설명합니다.

EvalError가 --- 전역 함수 평가에 관한 오류 발생을 나타내는 인스턴스를 생성().

InternalError --- JavaScript 엔진의 내부 오류가 발생할 때 발생하는 오류를 나타내는 인스턴스를 만듭니다. 예 : "너무 많은 재귀"

범위 오류 --- 숫자 변수 또는 매개 변수가 유효한 범위를 벗어나는 경우 발생하는 오류를 나타내는 인스턴스를 만듭니다.

ReferenceError --- 잘못된 참조를 참조 해제 할 때 발생하는 오류를 나타내는 인스턴스를 만듭니다.

SyntaxError --- eval()에서 코드를 구문 분석하는 동안 발생하는 구문 오류를 나타내는 인스턴스를 만듭니다.

TypeError --- 변수 또는 매개 변수가 유효한 유형이 아닌 경우 발생하는 오류를 나타내는 인스턴스를 만듭니다.

URIError --- encodeURI() 또는 decodeURI()에 잘못된 매개 변수가 전달 될 때 발생하는 오류를 나타내는 인스턴스를 만듭니다.

37

JavaScript의 범위를 벗어난 규칙은 RangeError을 사용하고 있습니다.

try { 
    throw new RangeError(); 
} 
catch (e){ 
    if(e instanceof RangeError){ 
     console.log('out of range'); 
    } 
} 
+2

일반적인 오류는 무엇입니까? 그리고/또는 내장 된 JS 오류 클래스 목록은 어디에 있습니까? – pitosalas

+6

Mozilla 개발자 네트워크에는 JavaScript 오류 유형 및 기타 정보 목록이 있습니다. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error –

+1

@basarat else {throw; }'여기에 – knocte

23

Exception에 의해 메시지를 내보내고 표시하는 간단한 솔루션입니다.

try { 
    throw new TypeError("Error message"); 
} 
catch (e){ 

    console.log((<Error>e).message);//conversion to Error type 
}