프로그래밍 공부
카테고리
작성일
2022. 8. 13. 15:23
작성자
WDmil
728x90

예외

- 프로그래밍 상에서 예측이 가능한 오류 사항을 의미한다.

- 특정 코드에 대해 오류가 날수도 있는 사항들을 기제하여 오류가 발생했을 경우 프로그램이 강제 종료되는 것을 막고 오류에 대한 처리를 개발자가 스스로 하여 프로그램이 비 정상적으로 종료되는것을 막아주는 기법이다.

- 자바에서는 오류가 발생할 수도 있는 코드를 사용할 경우 사용하는 쪽에서 예외 처리를 강제적으로 하도록 유도할 수 있다.

 

Exception

- 예외가 발생하는 이를 처리해야 하는데 처리를 할 수 있는 기능을 가지고 있는 클래스가 Exception 클래스 이다.

- Exception 클래스의 경우 예외가 발생되면 사용자에게 메시지를 전달할 수 있는 기능들이 포함되어 있다.

- 기본적인 기능 외에 더 처리할게 있다면 그에 맞는 Exception을 상속 받은 클래스를 이용하면 된다.

- IOException, InteruptedException

 

RuntimeException

- 기본 사항은 Exception과 동일 하지만 Exception을 상속받은 예외 클래스는 프로그래밍을 할때 직접적인 예외 처리를 해야만 컴파일에 통과를 하지만 RuntimeException 을 상속받은 예외 클래스는 프로그래밍을 할때 직접적인 예외처리를 하지 않아도 컴파일 되게 허가를 해준다. 하지만 예외가 발생하면 똑같이 강제 종료가 되며 예외가 발생할 수도 있다면 예외 처리를 해줘야 한다. 하지만 이러한 예외의 경우 if 문과 같은 조건문 등을 이용하면 예외 처리 없이 오류를 방지할 수 있는 것만이 정의되어 있다.

 

예외 처리 블럭

- 예외 처리는 다음과 같은 문법을 통해 처리할 수 있다.

 

try{

    예외가 발생 할 수 있는 코드

} catch (ArithmeticException e1){

    arithmeticException 이 발생할 경우 처리할 코드

} catch (IOException ew) {

    IOException 이 발생할 경우 처리할 코드

} finally {

    예외 발생 여부에 관계없이 처리할 코드

}

오류 시에는 catch부분이 실행이 되고 finally 는 오류가 있던 정상 실행이건 실행이 된다.

 

throws

- 메서드에 throws 를 사용하면 예외가 발생할 경우 직접 처리하징 낳고 메서드를 호출한 곳에서 처리를 하도록 유도할 수 있다.

- 메서드에서 thorws를 통해 예외를 전달하면 메서드를 호출하는 쪽은 예외 처리 블록을 이용해 반드시 예외를 처리해줘야 한다.

 

throw

- 메서드 내부에서 예외를 발생시키는 경우에 사용한다.

- if 문과 같은 조건문을 통해 조건을 검사하고 잘못된 경우라 판단되면 예외를 발생시켜 메서드를 호출한 쪽에서 예외를 처리할 수 있도록 유도할 수 있다.

 

예외 발생 시에 해당되는 예외 문으로 코드 진행을 던진다 라고 해서 throw 라고 이해해도 무방하다.

 

사용자 정의 예외처리

- 자바에는 무수히 많은 예외처리 클래스를 제공하고 있다.

- 이러한 클래스들 외에 개발자가 만들어서 쓸 경우도 있는데 Exception 클래스를 상속받은 클래스를 만들어 주면 된다.

- 만약 어떠한 메시지를 사용자에게 전달하고 싶다면 getMessage 메서드를 overriding 하면 된다. 이 메서드는 예외가 발생될 때 자동으로 호출된다.

사용자가 직접적으로 예외처리 할 수 있다.

 

728x90

'JAVA' 카테고리의 다른 글

JAVA Runtime 클래스  (0) 2022.08.13
JAVA Wrapper  (0) 2022.08.13
JAVA 쓰레드 동기화  (0) 2022.08.13
JAVA 쓰레드 우선순위  (0) 2022.08.13
JAVA 쓰레드  (0) 2022.08.13