Exception
예외는 error의 일종이며 프로그램이 수행시 또는 컴파일시에 불능상태를 만들어 버린다. Exception이 방생하는 이유는 여러가지다.
근데 만약 금융시스템 또는 365일 24시간 항상 구동되어야 할 시스템이 Exception으로 인해 시스템이 불능이 되거나 프로그램이 죽어버리게 되면 상당히 곤란할 것이다. 따라서 이를 막기 위해 자바에서는 Exception예외처리라는 방법을 통해 Exception erroe를 처리한다.
종류
컴파일 시점에서 발생하는 예외를 Exception(일반예외)라고 하고,
프로그램 실행시에 발생하는 예외를 RuntimeException(실행예외)라고 한다.
즉, 예외가 발생하는 시점에 프로그램이 실행 전 후 상태에 따라 이를 구분하면 된다.
이 2가지 종류의 Exceoption을 처리하기 위해 자바에서는 java.lang.Exception이라는 최상위 부모 클래스를 제공한다. 따라서 모든 Exception들의 조상을 결국 java.lang.Exception이다.
하늘색 Exceoption들은 단순 Exception이다.(일반예외)
초록색 RuntimeException은 프로그램 실행시 발생하는 런타임 Exception이다.(실행예외)
예외처리 코드 및 실행순서
예외 처리 코드에는 크게 3가지 블록이 존재한다.
- Try : 실제 코드가 들어가는 곳, 예외 Exception 발생으로 인해 시스템 및 프로그램이 불능상태에 빠지지 않고 시스템 및 프로그램이 정상실행 되도록 유지시켜 준다.
- Catch : Try블록에서 Exception이 발생하면 코드 실행 순서가 Catch쪽으로 오게 된다. 즉 예외에 대한 후 처리 코드
- Finally : Try블록에서 Exception과 발생 유무와 상관 없이 무조건 수행되는 코드(옵션이므로 생략 가능)
실행순서
Exception 발생!
Try블록 수행 -> Catch블록 수행 -> Finally블록 수행(생략가능)Exception 미 발생!
Try블록 수행 -> Finally블록 수행(생략가능)