×
Crocus
공부한 내용을 정리하는 블로그로 시작한
Crocus는 2014년 1월 14일 부터 시작하여
현재 월 6만명, 총 2,191,305명의 방문자 수를 기록하고 있습니다.
Donation
이제 많은 사용자들이 이용하는 만큼
더 다양한 서비스 개발/제공을 위해 후원금을 모금하고자 합니다.
후원을 해주시는 분들은 Donators 명단에 성명, 후원금을 기입해드리며
Crocus 블로그가 아닌 다른 곳에 정리해둔 저만의 내용을 공유해 드리고자 합니다.
Account
예금주 : 고관우
신한은행 : 110-334-866541
카카오뱅크 : 3333-01-7888060

👉 후원 페이지 바로가기 Donators
익명 : 5000원(Crocus응원합니다.)
busyhuman: 5000원(유용한 지식 감사합니다.)
익명 : 5000원(알고리즘 학습러)
반응형


자바를 실행하다보면, 분명 맞다고 생각했는데 자꾸 다음과 같은 문장이 콘솔에 나타난다.



일단 확실한 것은 코더가 실수를 한것이지, 자바는 실수를 하지 않는다는 것이다.


하지만 저렇게 에러코드를 표현해주는것은 Visual Studio처럼 명확하게 오류를 표현해주지 못할뿐더러, 어떻게 잘못된지 파악하기가 힘들다.


따라서 이러한 에러를 잡아내기위해 try catch 구문을 이용한다.



형식은 다음과 같다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
try
{
코드
}
 
catch(예외 타입 e)
{
코드
}
 
finally
{
코드
}
Crocus


try :: 일반적인 코드가 들어간다.


catch :: 에러(예외)가 발생했을 때 이 부분으로 들어간다.


finally :: try 혹은 catch문 실행 후 무조건 실행되는 구문이다. 물론 finally코드 없이 try catch문으로 작성 할 수도 있다.



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
31
32
33
34
35
36
package JavaBasic;
 
class Jmain{
    
    public static void main(String []args)
    {
        // 크기가 5인 배열 생성
        int []arr = new int[5];
        
        try{
            // 100을 0으로 나눈다.
            arr[0= 100 / 0;
 
            // arr[100]에 1값을 넣는다.
            arr[100= 1;
            
        }
        
        // ArithmeticException :: 수학적 오류일 때
        catch (ArithmeticException e){
            System.out.println("오류 원인 :: " + e.getMessage() + " // 0으로 나누거나 다른 수학적 오류입니다.");            
        }
        
        // ArrayIndexOutOfBoundsException 배열 참조 오류일 때
        catch (ArrayIndexOutOfBoundsException e){
            System.out.println("오류 원인 :: " + e.getMessage() + " // 배열 참조가 잘못되었습니다.");
        }
        
        finally{
            System.out.println("오류가 없다면 계속 진행, 오류가 있다면 수정하세요.");
        }
    }
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus



위의 코드는 arr[0] = 100 / 0; 과 arr[100] = 1;의 위치를 서로 바꾸면 서로 다른 예외처리를 볼 수 있다.








throw 는 오류 메시지를 직접 구현하는 것이다.


형식은 다음과 같다.


throw new Exception(" Print Your Error Message " );


자세한 내용은 주석을 통해 달아두었다.


그리고 추가적으로 우선순위 및 형변환을 이용한 코딩의 내용도 담아두었다.



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
31
32
33
34
35
package JavaBasic;
 
class Jmain{
    
    public static void main(String []args)
    {
        char []str = new char[3];
        int i = 0;
        
        // Java에서는 while(1)이라는것이 없고, while(true)이다.
        while(true)
        {
            try{
                if(i < 3){
                    str[i] = (char)('a' + i);    // ASCII로 판단, 'a' + 1라면 'b'가 된다.
                
                    // str[i++]의 의미는 str[i]를 출력하고 난 뒤, i를 1 증가 시킨다.
                    System.out.println("현재 i :: " + i + " 현재 str["+i+"] :: " + str[i++]);
                }
                else
                    // throw를 쓰기 위해서는 항상 try catch를 써야 한다.
                    throw new Exception("i가 현재 " + i + "입니다. 배열 범위를 초과하였습니다.");
            }
            
            catch(Exception e){
                System.out.println("ErrMsg :: " + e.getMessage());
                return;
            }
        }
        
    }
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crccus









반응형