본문 바로가기
Java

JAVA]예외(Exception)

by 완기 2020. 12. 1.
728x90
반응형

자바에서 예외는 개발자가 구현한 로직에서 문제가 생겼을 때, 생긴다.
 
ex: ) 회원테이블에 name :"wangi" , age:26 넣어줘  ->
SQL Exception 발생! -> name 컬럼에 unique 제약조건(이미 존재함)으로 인해 insert 불가 발생 -> 제대로 들어가지 않음
 
위와 같은 문제가 나타날 수 있다.
 
그렇다면 개발자는 위 상황이 일어나면 어떻게 할 것인지 처리하는게 예외 처리이다.
 
이런 일을 해~ -> 하다가 오류나면 -> 이렇게 처리해 와 같은 논법으로 생각하면 쉽다.
 
이와 같은 처리방법으로 try catch문으로 하는데 슈도코드로 설명을 하면

try{
	이런거 이런거 하다가
}catch(Exception e){
	오류나면 이거해
	}finally(){
	그리고 이거 실행해
}

오류가 발생 안하면 try 로직 실행 -> finally 로직 실행
 
오류 발생시 try(Error) -> catch 로직 실행 -> finally로직 실행 과 같이 동작한다.
 


Checked Exception 과 Unchecked Exception

 
 
예외에는 두 가지 종류가 있는데
 
일단 checked 예외는 주로 개발자가 코드 작성을 하면서 발생하는 에러다.
코드 작성 시, throws Exception을 하는 코드가 있다면 반드시 예외를 처리 해줘야하고 컴파일조차 되지 않는다. IO,SQL Exception 등
이와 같은 checked 예외는 반드시 예외 처리를 해줘야 한다.

 

 
그리고 unchecked 예외는 예외에 대한 처리를 강제적으로 해야하는건 아니지만
프로그램이 실행되면서 발생하는 예외이다.
대표적으론 NullPointer,Illigal Arg,OutOfIndex 등등의 예외가 있다.

 
그리고 try catch문에서 catch는 다중으로 사용가능하며, Exception의 계층구조가 높을 수록 아래로 내려가야한다.
순서가 바뀌면 UnReachableException이 발생한다.

Exception 계층구조

 

728x90
728x90

댓글