우리가 가장 많이 외쳤을 그 단어...
코딩을 하며 많은 에러를 만나 왔겠지만 지금 까지 우리는 그 에러들이 무엇을 의미하고 무슨 에러인지 모른 채 코딩을 하고 있었다. 이제 오늘 부터는 그 에러들이 무엇인지 확인하고,
에러 발생시 코딩 방향을 설정할 수 있도록 Exception 에 대해 배워 보자.
Error
Runtime Error
자바의 특이점
자바는 다른 C++, C# 등의 언어와는 다르게 Error 에도 종류를 지정해 놓았다.
다른 언어들에서 Error은 모두 Error 이지만 자바에서는 Error, Exception 으로 나뉘어
에러 발생 시 처리 가능 여부에 따라 나누고 있다.
- 에러(Error) : 프로그램 코드에 의해 수습될 수 없는 심각한 오류(처리 불가)
- 예외(Exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류(처리 가능)
Exception
Exception Handling
이제 부터 우리는 이 처리 가능한 예외(Exception)을 예외처리를 통해 프로그램이 비정상적으로 종료되는 것을 방지할 수 있다.
try{
int divide = 5/0;
}catch(Exception e){
System.out.print("자바에선 정수를 0으로 나누면 에러가 뜹니다.ㅎㅎ")
}
다음 코드를 실행해 보자 자바는 타입 변환에 엄격하여 정수를 0으로 나누는 것은 허락되지 않습니다. 따라서 다음 코드는 오류가 납니다.
평소라면 우리는 오류가 가득한 빨간 콘솔창을 띄어야 하지만 catch에 의해 예외가 잡혀
catch 구문 안에 있는 print가 실행됩니다.
발생한 예외와 일치하는 catch가 없는 경우 예외는 처리되지 않는다.
만약 예외가 발생하거나 말거나 꼭 실행해야 할 때는?
그럴 떄는 finally를 사용하면 됩니다.
사용형식
try{
예외 발생
}catch(exception e){
발생 시 실행부
}finally{
예외에 상관없이 무조건 적으로 실행
}
위 처럼 사용하게 되면 예외 발생 여부에 상관 없이 코드를 실행 시켜 줄 수 있습니다.
나중에 Thread 부분으로 넘어가면 상당히 많이 쓰일 수 있는 코드이니 잘 기억해 주면 좋게땅