본문 바로가기

일/javascript

js10_exception

 <script>
    function getMonthName(mo) {
  mo = mo - 1;
  let months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
  if (months[mo]) {
    return months[mo];
  } else {
    throw `${mo}월의 값은 1~12까지 입니다`;
  }
}
let myMonth = 10;
try {
 
  monthName = getMonthName(myMonth);
  console.log(`입력한 달은 ${monthName}월 입니다`)
} catch (e) {
  monthName = 'unknown';
  console.log(e);
} finally{
  console.log('프로그램이 종료 되었습니다');
}

/*
  try {
    1. 실행할 코드를 입력한다.
    2. 정상이라면 문제없이 실행되지만 경우에 따라서 예외가 발생할 수 있다.
    3. 예외는 throw명에 의해 발생할 수도 있다.
    4. 예외를 발생시키는 매서드에 의해서도 발생할 수 있다.

  }catch(예외객체) {
    1. 예외가 발생하면 예외객체를 전달 받을 수 있다.
    2. 예외객체를 전달 받지 않을 경우에는 매개변수 없이 catch{}
    3. catch블럭은 예외 발생 시 예외별로 처리할 수가 있다.
    즉, 여러개의 catch블럭을 정의할 수가 있다.

  }finally {
    finally블럭은 예외발생 유무와 상관없이 반드시 처리가 되는 블럭이다.

  }
*/
  </script>
<script>
    try{
    console.log(nothing);    
    // e.name : 에러이름, 정의되지 않은 변수의 에러는 ReferenceError
    // e.message : 에러내용
    // e.stack : 현재 호출된 주소(stack)

    }catch(e) {
      document.write(e.name, '<br>');
      document.write('주소를 찾지...', '<br>');
      document.write(e.stack, '<br>');
    }

    // 예외발생 throw
    try{
      const val = parseInt(prompt('짝수를 입력'))
      if(val%2 !==0){
        throw new Error('짝수가 아닙니다');
      }

    }catch (e){
      alert(e.message);
    }
     

    </script>

 

' > javascript' 카테고리의 다른 글

js12_events  (0) 2023.06.01
js11_Query  (0) 2023.06.01
js09_builtin  (0) 2023.06.01
js08_events  (1) 2023.06.01
js07_DOM  (0) 2023.06.01