ssung_항해일지/CS 지식 및 기술면접

Exception(예외) 처리

ssungcohol 2023. 5. 19. 14:13

Exception (예외) 처리

  • 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것
  • 자바에서 코드를 예외 처리 한다고해서 프로그램의 예외 상황 자체를 막을 수는 없음
  • 목적
    • 예외 발생으로 인해 실행 중인 프로그램의 갑작스런 비정상적인 동작 방지
    • 에러를 잡고 복구를 시도하거나 회피식으로 처리하여 프로그램이 정상 실행상태를 유지할 수 있도록 하는 것

try - catch 문

  • 예외처리를 위한 try, catch문의 기본 구조

출처 : https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%98%88%EC%99%B8-%EC%B2%98%EB%A6%ACException-%EB%AC%B8%EB%B2%95-%EC%9D%91%EC%9A%A9-%EC%A0%95%EB%A6%AC

  • try 블록에는 예외발생 가능 코드가 위치하고 오류 발생 시, 오류 종류(예외 클래스)에 맞는 catch문으로 가서 catch 블록 안에 있는 코드 실행
  • 만약 오류가 발생하지 않으면 catch 문은 실행하지 않음
  • catch 문에 예외클래스 타입과 변수 e가 선언되어 있는데, 예외가 발생하면 그 예외에 맞는 예외클래스가 catch 문에 아규먼트로 선언되어 있으면 실행되어 옳지 못한 동작에 대하여 대비 가능
  • 클래스의 상속 관계 (다형성)을 이용해 예외 클래스의 상위 클래스인 Exception 클래스 타입을 catch문 아규먼트에 선언하면, 코드 몇줄만으로 자바의 나머지 모든 예외 클래스를 catch 문으로 받을 수 있음
    (다만, 세세하게 어떤 예외인지는 부모 클래스인 Exception 클래스만으로는 알 수 없게 되는 단점이 존재)

다중(멀티) Catch

  • JDK 1.7 부터 여러 catch 블럭을 하나의 catch 블럭으로 합칠 수 있다.
  • 이에 따라, 연결할 수 있는 예외 클래스의 개수에도 제한이 없음
  • 다만, 멀티 catch는 결국 위의 부모 예외 클래스 exception과 같이 여거 개의 예외를 통짜로 처리하는 것이기 때문에 세세하게 제어하고 싶으면 if문과 instanceOf 연산자로 분기처리를 해주어야 함
728x90

'ssung_항해일지 > CS 지식 및 기술면접' 카테고리의 다른 글

Stack & Queue  (0) 2023.07.12
RDB & NoSQL  (0) 2023.05.18
오버로딩과 오버라이딩  (0) 2023.05.18
절차지향, 객체지향, 함수형 프로그래밍  (0) 2023.05.17
Stack & Queue / Array & LinkedList  (0) 2023.05.16