예외 처리 ( exception )
js 를 강의를 보다 예외 처리의 err 부분이 unknown 이라는 것을 알게 되었다.
생각해보니 에러 종류에 따라 처리를 다르게 하는게 맞지 않나 라는 생각을 하게 되어 정리해보려 한다.
js
try{
...
}catch(err){
...
}
보통 할때 console 로 확인 만 했는데 좋지않은 거같다.
mdn (typescript 예외 처리)에서 예외 처리 관련 된 부분을 보았는데
try {
myroutine(); // may throw three types of exceptions
} catch (e) {
if (e instanceof TypeError) {
// statements to handle TypeError exceptions
} else if (e instanceof RangeError) {
// statements to handle RangeError exceptions
} else if (e instanceof EvalError) {
// statements to handle EvalError exceptions
} else {
// statements to handle any unspecified exceptions
logMyErrors(e); // pass exception object to error handler
}
}
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/try...catch
try...catch - JavaScript | MDN
try...catch 문은 실행할 코드블럭을 표시하고 예외(exception)가 발생(throw)할 경우의 응답을 지정합니다.
developer.mozilla.org
Java는
try{
...
}catch(Exception e){
...
}
error의 타입을 알수있었다. js에서 에러 처리를 아무생각 없이 했었다 .
비교를 하면 이해가 좋을 거 같아 java에 관한 error 관련 블로그 찾음.
https://www.nextree.co.kr/p3239
Java 예외(Exception) 처리에 대한 작은 생각
일상생활에서도 기본적인 것은 고민하지 않고 습관처럼 사용하는 경우가 있다. 초급 개발자인 나에게 ‘예외(Exception)’이 바로 그런 것이었다. 처음 JAVA수업 때 강사님께 "왜 로직을 try문으로
www.nextree.co.kr
js+typescript를 하면 자바랑 매우 유사한 거 같다.
error 유형을 알아보자.
JavaScript에는 일반적인 Error 생성자 외에도 여러 개의 중요 오류 생성자가 존재합니다. 클라이언트측 예외에 대해서는 제어 흐름과 에러 처리를 참고하세요.
EvalError
전역 함수 eval()에서 발생하는 오류의 인스턴스를 생성합니다.
RangeError
숫자 변수나 매개변수가 유효한 범위를 벗어났음을 나타내는 오류 인스턴스를 생성합니다.
ReferenceError
잘못된 참조를 했음을 나타내는 오류 인스턴스를 생성합니다.
SyntaxError
eval()이 코드를 분석하는 중 잘못된 구문을 만났음을 나타내는 오류 인스턴스를 생성합니다.
TypeError
변수나 매개변수가 유효한 자료형이 아님을 나타내는 오류 인스턴스를 생성합니다.
URIError
encodeURI()나 decodeURl() 함수에 부적절한 매개변수를 제공했을 때 발생하는 오류의 인스턴스를 생성합니다.
AggregateError
하나의 동작이 여러 개의 오류 발생시키는 경우(예: Promise.any() (en-US)) 여러 오류를 하나의 오류로 감싸는 인스턴스를 만듭니다.
InternalError Non-standard
JavaScript 엔진의 내부에서 오류가 발생했음을 나타내는 오류 인스턴스를 생성합니다.
인스턴스 속성
오류 메시지
오류 이름
오류를 설명하기 위한 비표준 마이크로소프트 속성. message와 비슷합니다.
오류 번호를 위한 비표준 마이크로소프트 속성
해당 오류를 발생시킨 파일의 경로를 표시하기 위한 비표준 모질라 속성
해당 오류를 발생시킨 파일의 줄 번호를 표시하기 위한 비표준 모질라 속성
해당 오류를 발생시킨 파일의 칸 번호를 표시하기 위한 비표준 모질라 속성
참고
MDN
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Error