* 예외 처리(Exception handling)
- 프로그램이 실행되는 동안 문제가 발생할 때 대처할 수 있게 처리하는 것
- 예외(Exception) : 프로그램 실행 중 발생하는 오류
- 에러(Error) : 프로그래밍 언어의 문법적인 오류
- 기본 예외 처리, 고급 예외처리 두 가지 방법으로 처리
1. 기본 예외 처리
- 예외가 발생하지 않게 사전에 해결하는 것
<script type="text/javascript"> function registerEventListener(node, event, listener) { if (node.addEventListener) { node.addEventListener(event, listener, false); // 파이어폭스, 크롬, 사파리, 오페라 } else if (node.attachEvent) { node.attachEvent('on' + event, listener); // 익스 플로러 } // if } function whenClick(e) { var event = window.event || e; var willAlert = ''; willAlert += 'clientX : ' + event.clientX + '\n'; willAlert += 'clientY : ' + event.clientY + '\n'; alert(willAlert); } </script>
2. 고급 예외 처리
- try 키워드, catch 키워드, finally 키워드로 예외를 처리
- try 구문안에서 예외가 발생하면 catch 구문에서 처리, finally 구문은 필 수 사항은 아니고, 예외 발생 여부와 상관없이 수행돼야 하는 작업을 처리
<!-- exception2.html --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>exception2</title> <script type="text/javascript"> try { alert('try 구문'); abcd.run(); // 없는객체의 없는 메서드이기 때문에 예외 발생 alert('try 구문 끝'); // 예외로 인해 실행 되지 않음 } catch (exception) { alert('예외 발생시 실행 되는 catch 구문'); } finally { alert('예외 발생 여부 상관없이 실행 되는 finaylly 구문'); } </script> </head> <body> </body> </html>
3. 예외 객체
- try catch 구문을 사용할 때 catch 괄호 안에 입력하는 식별자
- e, 또는 exception 식별자를 사용
- 예외 객체의 속성
속성명 |
설명 |
message |
예외 메시지 |
description |
예외 설명 |
name |
예외 이름 |
<!-- exception3.html --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>exception3</title> <script type="text/javascript"> try { var array = new Array(99999999999999999999999); } catch (exception) { var output = ''; for (var i in exception) { output += i + ' : ' + exception[i] + '\n'; } alert(output); } </script> </head> <body> </body> </html>
4. 에러와 예외
- 예외 : try catch 구문으로 해결할 수 있는 것
- 에러 : try catch 구문으로 해결할 수 없는 것
5. 예외 강제 발생
- 예외를 강제로 발생시킬 때는 throw 키워드를 사용
- 에러와 다르게 예외는 try catch 구문으로 처리할 수 있음
'Web > JavaScript' 카테고리의 다른 글
자바스크립트(JavaScript) 외부 자바스크립트 파일 (0) | 2013.11.25 |
---|---|
자바스크립트(JavaScript) 이벤트(Event) (0) | 2013.11.21 |
자바스크립트(JavaScript) 문서 객체 모델(DOM : Document Object Model) (0) | 2013.11.19 |
자바스크립트(JavaScript) 브라우저 객체 모델(Browser Object Model) (0) | 2013.11.19 |
자바스크립트(JavaScript) 메서드 체이닝(Method Chaining) (0) | 2013.11.18 |