본문 바로가기

웹 프로그래밍/웹

[Javascript] 예외 처리하기

그 전에 일단 예외(Exception)과 오류(Error)를 구분할 필요가 있다.

 

예외(Exception) : 해당 브라우저에 없는 메서드나, 객체 등을 사용할 경우일어난다.

(강제 예외 발생은 throw 'String'; 구문을 통해서 발생시킬 수 있다.)

오류(Error)        : Javascript 문법상의 오류가 프로그래밍적 버그 등을 지칭하므로, 해당 페이지에서의

JS는 아에 동작하지 않는다.

 

 개발자는 이러한 예외발생을 막기위해서 예외처리라는 것을 하는데, '기본 예외 처리''고급 예외 처리'로 나뉜다.

 

 기본 예외처리는 If와 else구문을 이용하여 할 수 있고, 고급 예외처리는 try { } catch(exception) { } finally { }구문을 통해 할 수 있다.

 

 아래 예제를 통해서 이해할 수 있다.

'기본 예외 처리'

           document.getElementById('paragraph').onclick = function (e) {
                var event = e || window.event;
                alert('paragraph');
                 
                event.cancelBubble = true;
                if(event.stopPropagation){   
              //
문을통해서 event.stopPropagation이 존재하면 아래 구문을 실행 시킬 수 있도록 짜여져 있다.
                    event.stopPropagation();
                }
            };

'고급 예외 처리'

            try {
                winException.byeBye();
                alert('어라 예외가 발생하지 않았군요!');
            } catch (exception){
                alert('어라 예외가 발생했군요!');
            } finally {
                alert('여긴 무조건 실행되는 공간이지용');
            }

 try는 '시도'라는 뜻을 가지고 있으므로 일단 winException이라는 없는 객체와  그에 속한 byeBye()는 존재하지 않은 메서드를 실행시켰으므로 예외가 발생한다. 그래서 catch구문으로 이동하여 다른 코드를 실행시키므로써 예외를 피할 수 있다. 그 후 finally리는 이름과 다르게 예외가 발생했든 하지 않았든 무조건적으로 실행시키는 코드이므로 없어도 되고 개발자에 따라서 사용해도 된다.