웹 개발 메모장
[자바스크립트] 예외 처리 사용 예제 본문
예외 처리 예제
예외 처리 : 프로그램 실행 중 발생하는 비 정상적인 동작을 처리
예제 1. 예외 처리 맛보기
1 2 3 4 5 6 | try { var a = 10; a(); }catch(ex) { alert(ex); } | cs |
[실행]
예제 2. 입력할 때 숫자만 입력되도록 하기
1 | <input type="text" id="ex01" onkeypress="keyEventFunc(event)" placeholder="숫자만 입력됩니다."> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 | function keyEventFunc(e) { try{ if(e.keyCode < 48 || e.keyCode > 57) { throw 'NaNEX'; } }catch(ex) { if(ex == 'NaNEX'){ alert('숫자만 입력 가능합니다.'); e.preventDefault(); } } } | cs |
예제 3. 한국식 날짜표기를 영어식 날짜표기로 변환하기
변환 변환 버튼을 누르세요
함수 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | //내가 원하는 날짜 형식인지 판단하는 함수 function toEngDateForm(str) { //문자열은 항상 10글자인지 검사 if(str.length != 10) { throw 'String Length Error'; } // '/'구분자가 잘 구분했는지 있는지 검사 var strs = str.split('/'); if(strs.length != 3) { throw 'String Format Error'; }else if(strs[1].length > 2 || strs[2].length > 2){ throw 'String Format Error'; } //년 월 일이 각각 숫자인지 검사 for(var s of strs) { if(isNaN(Number(s))){ throw 'NaN Error'; } } // 1~12월인지, 1~31일인지 검사 //(월 마다 마지막일 다른 것 패스) if(strs[1] > 12 || strs[1] < 1 || strs[2] > 31 || strs[2] < 1) { throw 'Not Exist Date Error'; } return strs.reverse().join('/'); } | cs |
함수 호출
1 2 3 4 5 6 7 8 9 10 11 12 13 | $(document).on('click', '#changeBtn', function(){ var dateStr = $('#dateInput').val(); try { var rs = toEngDateForm(dateStr); $('#resultSpan').text(rs); $('#resultSpan').css('color', '#5AAFFF'); $('#resultSpan').css('border-bottom', '1px solid #5AAFFF'); }catch(ex){ $('#resultSpan').text(ex); $('#resultSpan').css('color', '#FF2424'); $('#resultSpan').css('border-bottom', '1px solid #FF2424'); } }); | cs |
※ 추가
finally 는 try 내부 구문이 끝나던 끝나기 전에 예외가 발생해서 catch 로 가던 실행시키는 범위 입니다.
흔하게 DB 접속을 하는 경우 conn.close(); 등 연결을 해제하는 구문을 주로 finally 에 코딩합니다.
'옛날.. > 자바스크립트' 카테고리의 다른 글
[JQuery] $.each() (0) | 2018.01.11 |
---|---|
[JQuery] 선택자 시각적으로 정리 (0) | 2018.01.10 |
[자바스크립트] 공튀기기 (0) | 2018.01.09 |
[자바스크립트] 브라우저 객체 모델과 이벤트 (0) | 2018.01.08 |
[자바스크립트] reduce() / reduceRight() 간단 예제 (0) | 2018.01.08 |
Comments