웹 개발 메모장

[자바스크립트] 예외 처리 사용 예제 본문

옛날../자바스크립트

[자바스크립트] 예외 처리 사용 예제

도로롱주 2018. 1. 10. 14:23





예외 처리 예제



예외 처리 : 프로그램 실행 중 발생하는 비 정상적인 동작을 처리



예제 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 에 코딩합니다.



Comments