✏️ 복습 6

오가람·2022년 12월 27일

💡 예외처리

📌

예외 : 연산오류, 포맷오류 등 상황에 따라 개발자가 해결 가능한 오류

에러 : 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() 메소드에서도 처리되지 않는 경우 프로그램이 비정상 종료됨.
profile
개발자준비생

0개의 댓글