* 예외 처리(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 구문으로 처리할 수 있음

+ Recent posts