IEIP_Note

개요


Exception Handling 예외 처리

try {
	//code
} catch (err){
	//Error Handling
}
1. try {} 내부에 작성한 코드 실행
2. Error가 없는 경우, try 내부의 마지막 줄 코드까지 실행, catch 실행 X
3. Error가 있는 경우, try 내부의 코드 실행 중지, catch(err){} 넘어간다.
   여기서 매개변수 err은 에러 발생에 대한 설명이 담긴 Error 객체를 포함하고 있다.
//try...catch Exam

try {
	alert("try block Start");
	
	//IamErr; 정의되지 않은 변수
	
	alert("try block End");

	//코드에 Error가 없는 경우, try {} 코드 마지막 줄까지 실행
	//error가 없었기에 catch(err){} 실행되지 않는다.

	//코드 실행 중 Error 발생하면, try {} 실행 중지
	//catch(err){} 실행된다.
} catch(err){
	alert("에러가 발생했습니다.")
}

throw

function UserException(message){
	this.massage = massage;
	this.name = "UserException";
}

function getMonthName(mo){
	mo = mo - 1; //월 숫자와 배열 index와 맞추기 위한 용도
	const Months = [
		"1월",
		"2월",
		"3월",
		"4월",
		"5월",
		"6월",
		"7월",
		"8월",
		"9월",
		"10월",
		"11월",
		"12월"
	];,

	if (Months[mo] !== undefined){
		return Months[mo];
	} else {
		throw new UserException("존재하지 않는 월 입니다.");
	}
}

try {
	var month = 15; //1년 12개월 중 15월은 없기 때문에 예외 발생
	var monthname = getMonthName(month);
} catch(err){
	var monthname = "unknown";
	console.log(err.massage, err.name); //오류 처리기에 예외 객체 전달
}