Ch7. 예외처리

^_^·2022년 3월 26일
0

JAVA

목록 보기
7/7

예외 처리(Exception Handling)

  • ‘프로그램을 위한 보험 처리', 잘못된 하나로 인해 전체 시스템이 무너지는 결과를 방지하기 위한 기술적인 처리

예외가 주로 발생하는 원인

  • 사용자가 잘못된 데이터를 입력하는 경우

    ex)숫자를 넣어야 하는 곳에 문자, 0보다 큰 수를 넣어야하는데 음수 등

  • 개발자가 로직이나 계산을 잘못 작성한 경우

    ex)연산 작업에서 코드를 잘못 작성했으나 컴파일에서는 문제가 없어 발견하지 못할 때

  • 하드웨어나 네트워크가 제대로 동작하지 못하는 경우

  • 악의적으로 잘못된 연산을 요구하거나 시스템을 공격하는 경우

에러(Error)와 예외(Exception)를 구분하는 기준

  • 에러는 발생하면 개발자가 어떻게 조치할 수 없는 수준

  • 예외는 JVM은 정상적으로 동작하고 있지만 네트워크나 실행되는 프로그램의 입력 값이 잘못될 경우

Exception의 두 가지 종류

  • Checked Exception: 예외 처리를 하지 않으면 컴파일을 허락하지 않는 예외, 주로 외부 리소스와 통신하는 경우는 반드시 Checked Exception이라고 생각하자
  • Unchecked Exception: 컴파일 시에 체크되지 않고, 실행 시(Runtime)에 발생하는 Exception을 말함. 개발자들이 작성하는 로직에 의해서 처리해야 하는 예외

가장 빈번하게 겪는 예외(Exception)

  • 실제 레퍼런스(리모컨)가 가리키는 객체가 없는 상태에서 강제로 동작을 시키는 NullPointerException
  • 배열과 유사한 자료구조에서 범위를 벗어난 인덱스 번호를 사용하는 XXXOutOfBoundsException
  • 문자열이나 숫자/날짜 변환 시에 잘못된 데이터로 발생하는 XXXFormatException


try ~ catch ~ finally

-주로 연결을 종료하는 직업은 finally로 한다

예외에 대처하는 방식

  • 직접 try ~ catch를 이용해서 예외에 대한 책임을 스스로 감당하는 방식
  • throws Exception을 이용해서 발생한 예외의 책임을 호출하는 쪽으로 전가하는 방식

예외 처리의 노하우

  • 호출하는 쪽에 예외를 보고해야 한다면 throws 방식으로 처리합니다.
  • 최종적인 책임을 져야 하는 경우라면 try ~ catch를 고려합니다.

0개의 댓글