console.log로 변수 값을 표시
cosole.dir로 객체의 프로퍼티 목록을 표시
자바스크립트에서는 throw 문으로 예외를 던지고 try/catch/finally 문으로 예외를 잡아서 처리한다.
function permutation(a) {
if(!(a instanceof Array) ) {
throw new Error(a + " is not an array");
}
}
permutation("ABC); // 문자열이 들어갔기 때문에 throw 문으로 던진 에러 메시지가 발생한다.
생성자 | 생성하는 인스턴스 |
---|---|
Error | 범용적인 예외 객체 |
EvalError | eval 함수와 관련해서 발생한 예외 객체 |
RangeError | 숫자 값이 허용 범위를 벗어났을 때 발생하는 예외 객체 |
ReferenceError | 잘못된 참조를 만났을때 발생하는 예외 객체(자바스크립트를 다루면서 제일 많이 만나 봄) |
SyntaxError | 자바스크립트 문법에 어긋나는 구문을 만났을 때 발생하는 예외 객체 |
TypeError | 변수 및 타입이 유효하지 않을 때 발생하는 예외 객체 |
URIError | encodeURI와 decodeURI 메서드에 잘못된 인수가 전달되었을 때 발생하는 예외 객체 |
try {
// 이곳에 실행할 코드를 작성 (예외가 발생할 수 있는 코드)
// ex. 엄마 심부름으로 15,000원을 받아서 다이소에서 슬리퍼, 이디야에서 아메리카노, 슈퍼에서 계란 1판을 사와야 함.
} catch(exception) {
// try에서 예외가 발생했을 때 실행
// exception에는 던져진 예외 값이 들어옴. 이 값을 바탕을 예외 처리
// ex. 계란 1판의 가격이 올라서 슬리퍼와 아메리카노를 사고 남은 돈으로 계란 1판을 살 수 없음
} finally {
// try 블록 코드와 catch 블록 코드가 실행된 이후에 반드시 실행
// ex. 슈퍼에서 계속 머물러 있는게 아니라 집으로 돌아감
}
var a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
try {
a.forEach(function(v, i, a) {
if(i > 5) {
throw false; // i가 5보다 크다면 예외처리
}
return a[i] = v * v; // 예외가 아니라면 이 코드가 실행
});
} catch(e) {
if(e) throw e;
}
console.log(a); // [0, 1, 4, 9, 16, 25, 6, 7, 8, 9];