본문 바로가기

study/java

자바/JAVA 예외 처리

예외 클래스 정리 : jang-sn.tistory.com/17

 

예외 처리: 프로그램 실행 중 예외가 발생할 때, 갑자스러운 종료를 막고, 정상 실행 상태를 유직하도록 처리하는 것. 또한 로그를 남기게 할 수 있다.

 

자바 컴파일러는 일반 예외가 발견되면 예외 처리 코드를 강제로 요구한다. 실행 예외는 개발자가 경험적으로 코드를 작성한다.

 

try-catch-finally 블록: 생성자 또는 메소드 내부에서 작성되는 예외 처리 코드다. finally 는 작성하지 않아도 된다.

finally 블록은 예외가 잡힙더라도 실행되기 때문에 catch 문에 return 문이 있다고 해도, fianlly 블록이 실행된 후에 return 문이 실행된다.

try{
	명령 코드;
} catch(예외클래스1 e){
	//try	코드 실행 중 예외클래스1이 발생했을 때 실행됨.
    예외 처리 코드;
} finally {
	//예외 발생과 상관 없이 항상 실행
    // 리소스를 정리하는 코드를 주로 씀
   }

 

다중 catch 블록: 발생되는 예외 별로 예외 처리 코드를 다르게 할 수 있다.

try{
	명령 코드;
} catch(예외클래스1 e){
	//예외클래스1이 발생했을 때 실행됨.
    예외 처리 코드;
} catch(예외클래스2 e) {
	//예외클래스1이 발생하지 않아야 한다.
	//예외클래스2가 발생했을 때 실행됨.
    예외 처리 코드;
} catch(Exception e) {
	//예외 클래스1,2가 발생하지 않아야 한다.
	//모든 예외는 Exception을 상속 받으므로 어떤 예외도 실행 가능하다.
    //따라서 Exception catch 블록은 제일 밑에 작성한다.
    예외 처리 코드;
}

 

throws: 메소드에서 처리하지 않은 예외를 호출한 곳으로 넘긴다. 호출한 곳에서 예외를 다양하게 처리할 수 있다.

main() 에서 throws 하는 경우 JVM에서 처리한다.

try{
	method2();
} catch (예외클래스1 e){
	예외 처리;
}


//따라서 호출하는 곳마다 예외 처리 코드를 작성해야 한다.
public void method2() throws 예외클래스1{ //예외클래스1이 발생하면 호출하는 곳에서 예외 처리하도록 한다
	명령 코드;
}

 

예외클래스.printStackTrace() : 예외에 대한 정보를 출력한다. 어디서, 왜 발생했는 지 등등. 디버깅의 목적으로 사용한다.

 

 

  • 직접 예외 클래스를 만들고 사용하려면
    • Exception 클래스를 상속받는 클래스를 만든다.
    • 상황에 따라 Exception의 메소드들을 오버라이딩하여 사용한다.
    • 만든 예외 클래스를 사용하는 메소드를 작성할 때, throws 키워드와 같이 선언하고, 예외가 발생하는 부분에 throw new 예외클래스(); 를 작성한다. 
if (num == 1)
    System.out.println("OK");
else
    throw new MyException("doException");
  • 해당 메소도를 try-catch 구문과 함께 사용한다.

 

 

try-catch-resource(자바7부터 제공) : Resources를 가져와 사용하는 코드는 원하는 처리가 끝나면 리소스와의 연결을 끊어야 한다. 그래서 finally 블록을 사용해서 연결을 해제할 수 있지만, 리소스를 가져오는 클래스가 AutoCloseable 기능을 갖고 있다면(인터페이스 구현), try 옆에 괄호를 붙여 괄호 안에서 리소스를 열면 try-catch문이 끝나면 자동으로 연결을 끊어준다.

 

try (FileWriter f = new FileWriter("exam.txt")) {
	f.write("hello");
} catch (IOException e){
    e.printStackTrace():
}

// try()안에서 f를 열지 않았다면 finally 블록 안에 f.close()라는 코드를 작성해야 한다.

'study > java' 카테고리의 다른 글