try{
//예외가 발생할 가능성이 있는 코드
}catch (Exception e) {
//예외 발생 시 실행할 코드
}
예외가 발생할 경우 throw를 통해 다른 클래스로 예외 처리 역할을 위임하게 됩니다.
예외를 위임받은 클래스에 try /catch가 있을 경우 해당 클래스에서 예외를 처리하게 됩니다.
각자의 역할 / 동작
try { } 에서는 예외가 발생할 가능성이 있는 코드를 넣어줍니다.
넣었던 코드가 실행 중 예외가 발생하면, catch ( ) { } 로 넘어갑니다.
catch ( ) { } 에서는 try에서 발생한 예외를 처리하는 코드를 넣어줍니다.
catch 에서 예외를 처리하고, 프로그램이 계속 실행 될 수 있게 됩니다.
사용 시 주의 사항
- 예외 처리의 적절성
모든 예외를 catch를 통해 처리하기보다, throw를 통해
예외 처리를 다른 클래스에 넘기는 방식도 고려해야 합니다.
- 예외 계층 구조
예외는 계층 구조를 가지고 있습니다. 부모 클래스 ⇒ Exception || Throwable
부모 클래스로 예외를 처리할 수 있지만, 구체적인 예외 타입을 먼저 처리하는 것이 바람직합니다.
- Unchecked / Checked Exceptions
RuntimeExcepion 및 그 하위 클래스는 Unchecked Exception으로,
명시적으로 처리하지 않아도 됩니다.
그 외, 다른 것들은 Checked Exception으로, 반드시 try/catch를 하거나 throw로 선언해야합니다.
요약
예외를 적절히 처리하면 프로그램의 비정상 종료를 방지하고, 안정성을 높일 수 있습니다.
Share article