혼공자 2022-10-27

Merong·2022년 10월 27일
0

혼공자

목록 보기
4/4

예외 처리

일반 예외는 컴파일 과정에서 에러를 발생시켜 종료 시키지만
실행 예외는 컴파일러가 체크해주지 않기 때문에 개발자의 경험을 토대로 직접 짜주어야합니다


예외처리 코드

try-catch-finally 블록으로 예외처리가 가능

정상 실행의 경우

예외가 발생되었을 경우

  • try 블록의 코드가 예외 발생 없이 정상 실행되면
    finally 코드를 실행합니다 만약 try코드에서 예외가 발생하면
    즉시 실행을 멈추고 catch 블록으로 이동합니다
  • finally 블록은 생략이 가능합니다 예외 발생 여부와 상관없이 무조건 실행할 코드가 있을때 사용하면 됩니다

다중 catch

try 블록 내부에는 다양한 예외가 발생할수 있습니다
이경우 발생되는 예외별로 예외처리 코드를 작성할수 있는데 이를 다중 catch 라고 합니다

하나의 예외가 발생하면 즉시 실행을 멈추고 해당 catch블록으로 이동하기 때문에 동시 다발적인 예외는 발생하지 않습니다


다중 catch 사용시 주의점

상위 예외 클래스가 하위 예외 클래스보다 아래에 있어야합니다
try 블록에서 예외가 발생시 예외를 처리할 블록은 위에서부터 차례로 검색되기 때문에 만약 상위 예외 클래스의 catch 블록이 위에 있다면 하위 예외 클래스의 catch 문은 실행되지 않습니다


예외 떠넘기기

throws 키워드는 메소드 선언부 끝에 작성되어 메소드에서 처리하지 않는 예외를 호출한 곳으로 떠넘기는 역할을 합니다.

리턴타입 메소드이름(매개변수,...) throws 예외클래스1, 예외클래스2, ...{
}

발생할 수 있는 예외의 종류별로 throws뒤에 나열하는 것이 일반적이지만, throws Exception 만으로 모든 예외를 간단히 떠넘길수도 있습니다

리턴타입 메소드이름(매개변수,...)throws Exception{
}

0개의 댓글