4장 예외처리

oungoo·2020년 9월 1일
1

JAVA_초급

목록 보기
1/1

1. 프로그램 오류

  • 프로그램이 실행중에 어떤 이유로 인해 오작동을 하거나 비정상적으로 종료되는 경우

컴파일 오류 & 런타임 오류

  • 발생 시점에 따라 크게 두가지로 나눔
  • 컴파일 오류 : 컴파일 중에 발생하는 오류 ( ctrl + s )
  • 런타임 오류 : 실행 중에 발생하는 오류 ( ctrl + f11 )

오류의 종류

에러 (Error)

  • 프로그램 코드로 수습될 수 없는 심각한 오류
  • 코드로 못고침
  • ex. 게임 서버에 너무 많은 접속자가 몰려서 터지는 경우
    -> 대기열 방식 이용해서 입장인원 제한

예외 (Exception)

  • 프로그램 코드로 수습될 수 있는 경미한 오류
  • 코드로 처리
  • 숫자 입력 스캐너에 사용자가 문자를 입력하는 경우

Exception

  • 모든 예외의 최고 조상 : Exception
  • RuntimeException과 그외 Exception

RuntimeException

  • 주로 프로그래머의 실수에 의해서 발생하는 예외
  • IndexOutOfBoundsException : 배열에서 2번방까지밖에 없는데 3번방 달라고 할 때
  • NullPointException : 객체 생성 전(주소없을때)에 인스턴스 멤버에 접근하려고 할 때
  • ...

그 외 Exception

  • 주로 외부의 영향에 의해서 발생하는 예외
  • ClassNotFoundException : 클래스를 찾을 수 없다. 가끔 시스템 오류로 컴파일 되지 않는 경우가 있음
  • FileNotFoundException : 파일을 찾을 수 없다. 파일 넣어 놨어도 시스템이 못찾는 경우 있음
  • ...

try-catch

  • ~~class Exception_02 참고~~
  • 프로그램 실행시 발생할 수 있는 예외에 대비한 코드를 작성하는 것
  • 작성방법
  • try 안에 들어갈 문장 그룹핑 중요함 : 예외가 발생하면 try 문장 수행하지 않으니까.
  • 발생한 종류의 예외와 일치하는 하나의 catch만 수행된다.
  • 여러가지 예외 동시에 발생하면 1번만 처리, 처리 후에 다시 수행 2번 처리

예외 발생시키기

  • ~~class Exception_03 참고~~

  • 준비 : 연산자 new를 이용하여 발생시키고자 하는 예외의 객체를 만든다.
    Exception e1 = new Exception();

  • 발생 : 예약어 throw를 이용하여 예외를 발생시킨다.
    throw e1;

  • 한번에 쓸수 있음 : **throw new Exception(); **

  • 컴파일러가 예외처리를 강제하지 않는 경우
    1)RuntimeException과 그 자손들
    2)Error : 어차피 못고침

예외 던지기 "throws'

  • ~~class Exception_04 참고~~
  • 메서드에 예외 선언하기
  • 메서드의 선언부 마지막에 예약어 throws와 함께 예외 종류
  • 해당 메서드를 호출한 쪽에서 예외처리

finally

  • ~~class Exception_05참고~~
  • try-catch 블럭에 상관없이 수행되어야 할 코드를 포함한다.
  • 작성방법

1개의 댓글

comment-user-thumbnail
2020년 10월 17일

참고 잘 했더용 ^_^

답글 달기