본문 바로가기
야미스터디/Java

[JAVA] RuntimeException

by 의정부핵꿀밤 2022. 7. 21.
728x90

극락 스터디에서 계산기 리팩토링 중 예외처리를 고민하며 공부하다가 발견한 예외처리!

염먼지.. 공부하자...


Error

  • 실행 중 일어날 수 있는 치명적 오류
  • 메모리 부족이나 시스템 오류처럼, 애플리케이션에서 복구 불가능한 시스템 예외를 말한다
  • 컴파일 시점에 체크할 수 없으며 오류가 발생하면 프로그램을 비정상 종료된다

 

 

Exception

  • Error보다 비교적 경미한 오류
  • 애플리케이션 로직에서 사용할 수 있는 실질저인 최상위 예외이다
  • try-catch를 이용해 프로그램의 비정상적인 종료를 막을 수 있다
  • Exception은 크게 Checked Exception과 Unchecked Exception으로 나뉜다
  • Checked는 컴파일 시 체크되는 예외로 컴파일 전 예측이 가능하다
  • Unchecked는 컴파일 시 체크되지 않으며 프로그램 실행 도중 발생하는 예외로 예측이 불가능하다
  • Checked Exception을 발생시킬 수 있는 메서드를 사용할 경우 반드시 throws를 통해 예외를 던지거나 try-catch를 이용해 예외를 처리해주어야 하는 강제성이 있다
  • Unchecked Exception을 발생시킬 수 있는 메서드를 사용할 경우에는 반드시 예외를 처리해주어야 할 강제성이 없다
  • 따라서 Checked보다는 Unchecked가 개발 편의가 있다고 할 수 있다!
  • 단, 예외 처리를 하지 않은 상태에서 예외가 발생한다면 오류를 뱉어내며 프로그램이 비정상 종료되기 때문에 주의해야 한다!

 

 

실행 중에 발생하는 RuntimeException

이는 말 그대로 실행 중에 발생하며 시스템 환경적으로나 인풋 값이 잘못된 경우, 혹은 의도적으로 프로그래머가 잡아내기 위한 조건 등에 부합할 때 발생(throw)되게 만든다

 

 

 

 

RuntimeException의 종류

  • ArithmeticException : 정수를 0으로 나누었을 경우
  • ArrayStoreException : 배열 유형이 허락하지 않는 객체를 객체를 배열에 저장하려는 경우
  • ArrayIndexOutOfBoundsException : 배열을 참조하는 인덱스가 잘못된 경우
  • ClassCastException : 적절치 못하게 Class를 형 변환하는 경우
  • NullPointerException : null 객체를 참조했을 경우
  • NegativeArraySizeException : 배열의 크기가 음수인 경우
  • NoClassDefFoundException : 클래스를 찾을 수 없는 경우
  • OutOfMemoryException : 사용 가능한 메모리가 없는 경우
  • IndexOutOfBoundsException : 객체의 범위를 벗어난 색인(Index)를 사용하는 경우
  • IllegalArgumentException : 메서드에 유형이 일치하지 않는 매개변수를 전달하는 경우
  • IllegalMonitorStateException : 스레드가 스레드에 속하지 않는 객체를 모니터하려고 기다리는 경우
  • IllegalStateException : 적절하지 않은 때에 메서드를 호출하는 경우
728x90

'야미스터디 > Java' 카테고리의 다른 글

[Java] 접근 제한자 / 생성자 / SOLID 📌  (0) 2022.08.06
[JAVA] static 변수  (0) 2022.07.26
[Java] 객체지향 vs 절차지향 📌  (0) 2022.07.22
[JAVA] 정규 표현식  (0) 2022.04.18
[JAVA] Arrays.sort vs Collections.sort  (0) 2022.02.07

댓글