Java - 예외처리

춤추는개발자·2022년 11월 25일
0

Java 정리

목록 보기
22/59

프로그램 오류

  • 컴파일 에러 : 컴파일 할 때 발생하는 에러 , 프로그램 실행이 안된다.
  • 런타임 에러 : 실행 할 때 발생하는 에러 , 프로그램이 실행되다가 종료 된다.
  • 논리적 에러 : 작성 의도와 다르게 동작 , 프로그램이 종료되지 않고 실행 된다.
  • java의 런타임 에러
    • 에러 (error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
    • 예외 (exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류

에러는 어쩔 수 없지만 예외는 처리하자.

예외처리의 정의와 목적

  • 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것
  • 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것

Exception과 RuntimeException

  • exception 크래스들 그 자손 클래스 : 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외

    • IOException 에러 : 입출력 예외
    • ClassNotFoundException : 클래스다 존재하지 않아 못찾음
  • RuntimeException 클래스들 그 자손 클래스: 프로그래머의 실수로 발생하는 예외

    • ArithmeticException : 산술계산 예외
    • ClassCastException : 형변환 잘못하면 예외 발생
    • NullPointerException : 널포인터 예외 , 객체가 null인데 호출하면 예외 발생
    • IndexOutOfBoundsException : 배열 범위 벗어나는 예외 발생

    try-catch문

    try {
       // 예외가 발생할 가능성이 있는 문장들을 넣는다. 
    } catch (Exception1 e1) {
      // Exception1이 발생했을 경우 처리하기 위한 문장 
    } catch (Exception2 e2) {
      // Exception2이 발생했을 경우 처리하기 위한 문장
    } cathc (Exception2 e3) {
      // Exception3이 발생했을 경우 처리하기 위한 문장 
    }

    {} 를 생략할 수 없다.

    try-catch문 설명

  1. try블럭 내에서 예외가 발생한 경우
    • 예외를 처리할 catch 블럭을 찾아 내려간다.
    • 만약 발생한 예외와 일치하는 catch 블럭이 없으면 예외가 처리되지 않아 프로그램이 비정상적으로 종료된다.
    • Exception이 선언된 catch블럭은 모든 예외를 처리하기 때문에 마지막 catch 블럭에 작성한다. (Exception은 모든 예외의 최고 조상이기 때문이다.)
  2. try 블럭 내에서 예외가 발생하지 않은 경우는 catch 문에 가지않고 빠져 나간다.

0개의 댓글