💡 예외처리
📌
예외 : 연산오류, 포맷오류 등 상황에 따라 개발자가 해결 가능한 오류
에러 : JVM 자체의 오류로 개발자가 해결할 수 없는 오류
💡 예외 클래스 계층 구조
Exception
- Unchecked Exception : 주로 프로그래머의 부주의로 인한 오류인 경우가 많기 때문에 예외 처리보다는 코드를 수정해야 하는 경우가 많음
- RuntimeException
▪️ ArithmeticException : 0으로 나누는 경우 발생 if문으로 나누는 수가 0인지 검사
▪️ NullPointerException : Null인 참조 변수로 객체 멤버 참조 시도 시 발생 객체 사용전에 참조 변수가 null인지 확인
▪️ ArrayIndexOutOfBoundsException : 배열의 인덱스 범위를 넘어서 참조하는 경우
- Checked Exception : 반드시 예외 처리해야함
- IOException
▪️ EOFException
▪️ FileNotFoundException
💡 예외 처리 방법
Exception이 발생한 곳에서 직접 처리
- try~catch문 이용하여 예외 처리
▪️ try : Exception 발생할 가능성이 있는 코드를 안에 기술
▪️ catch : try 구문에서 Exception 발생 시 해당하는 Exception에 대한 처리 기술 여러 개의 Exception 처리가 가능하나 Exception간의 상속 관계 고려해야 함
▪️ finally : Exception 발생 여부와 관계없이 꼭 처리해야 하는 로직 기술 중간에 return문을 만나도 finally구문은 실행되지만 System.exit();를 만나면 무조건 프로그램 종료 주로 java.io나 java.sql 패키지릐 메소드 처리 시 이용
try {
}catch() {
}finally{
}
Exception 처리를 호출한 메소드에게 위임
- 메소드 선언 시 throws Exception명을 추가하여 호출한 상위 메소드에게 처리 위임
- 계속 위임하면 main() 메소드까지 위임하게 되고 main() 메소드에서도 처리되지 않는 경우 프로그램이 비정상 종료됨.