본문 바로가기

숭늉 이야기/IT

[Java] 예외(Exception)이란 무엇이며 어떻게 처리해야할까?

안녕하세요

오늘은 프로그램을 만들다가 보면 오타나 구문에 어긋난 코드로 에러가 발생하고 어떻게 처리하는 지 알아보도록 하겠습니다.



1. Exception (예외 처리)

컴파일 시에 에러가 발생하거나, 프로그램 실행 시에 상황에 따라 발생하는 오류가 날 수가 있는데 이 것을 Exception 이라고 합니다.

Exception이 발생했으면 예외처리를 해 주는 것이 좋은데, 에러가 날 때 그것에 맞는 적절한 처리를 하는 것이 좋습니다. 자바는 try ~ catch 문으로 throw 등을 이용하여 에러처리를 할 수 있습니다.


하지만 다음과 같은 코드는 좋지 않습니다.

try{

           ...

}catch(Exception e){

           //TODO Auto-gernerated catch block

           e.printStackTrace();

}


위와 같이 에러를 잡고 아무것도 처리하지 않으면 의미가 없습니다. 예외를 잡았으면 처리를 해야 합니다. Catch에서 예외를 처리하고 충분한 로그를 남기는 것이 좋습니다.


try{

           ...

}catch(Exception e){

           //TODO Auto-gernerated catch block

           String retunMeg = "";

           if(val.equals(""))

           {

                     retunMeg = "변수 값에 빈 값이 들어갔습니다.";

           }

           throw new Exception(retunMeg);

}



위와 같이 예외를 처리하고 충분한 설명이 있으면 됩니다.



2. 예외의 종류와 특징


1) Error

이 에러는 시스템에 무엇인가 비정상적인 상황이 발생했을 경우에 사용이 됩니다. 이 에러같은 경우는 catch 문으로 잡아도 대응 방법이 없습니다.


2) Exception

에러가 아닌 Excetion 클래스는 체크와 언체크 예외로 구분됩니다.

체크 예외란 Exception 클래스 이면서 RutimeException 클래스를 상속하지 않은 예외들을 말합니다.

언체크예외란 , RutimeException을 상속한 클래스를 말합니다.

여기서 RuntimeException은 따로 catch하지 않아도 컴파일이 되어서 관심을 두지 않습니다. 이 에러가 발생한 것은 버그가 있다는 것이므로 로그를 남기고 처리해야 합니다.