ch8 에러

김민지·2022년 11월 7일
0

자바의정석

목록 보기
3/8

에러의 종류

  • 컴파일에러, 런타임에러, 논리적에러

런타임에러의 종류

  • 에러: 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
  • 예외: 프로그램 코드에 의해서 수습될 수 있는 덜 심각한 오류

예외 클래스의 계층 구조

  1. 애플리케이션의 사용자가 발생시키는 예외: Exception + 그 자손들(RuntimeException클래스 + 그 자손 제외)
  2. 프로그래머의 잘못으로 발생되는 예외: RuntimeException클래스 + 그 자손

예외처리

  • 프로그램 실행시 발생할 수 있는 예외에 대비해서 프로그램이 비정상적으로 종료되는것을 막고 정상적인 실행상태를 유지하는 것

예외처리의 방법

  • try-catch사용
  • 메서드 선언부에 throws를 사용하여 발생할 수 있는 예외적기 -> 자신이 예외를 처리하지 않고 자신을 호출한 메서드에게 예외를 전달하여 예외처리를 맡긴다

try-catch 문에서의 흐름

  • 발생한 에러가 일치하는 catch블럭이 있는지 확인하고 일치하는 블럭이 있으면 그 블럭내의 문장들을 수행한다.
    (try블럭에서 예외가 바발생하면 예외발생위치 이후에 있는 try블럭의 문장들은 수행되지 않으므로 try 블럭에 포함시킬 코드의 범위를 잘 선택해야한다)
  • try, catch에서 return문을 만나도 finally블럭은 수행된다
  • 반환값이 있는 리턴문의 경우 catch블럭에도 return문이 필요하다

예외 되던지기

  • 예외 처리 후에 다시 예외를 발생시켜서 호출한 메서드로 전달하는것이다
  • 예외가 발생한 메서드, 이를 호출한 메서드 양쪽에서 에러를 처리해야하는 경우에 사용한다
profile
안녕하세요!

0개의 댓글