티스토리 뷰

Java

[Java] - 자바 프로그램의 예외처리

영지는 달리는중 2020. 11. 16. 00:10

프로그램의 오류 두가지

 

 

1. 컴파일 에러 (컴파일 중 발생하는 에러)

2. 런타임 에러 (어플리케이션 실행 중 발생하는 에러)

 

자바

1. 에러 - JVM 실행에 문제 -> 개발자가 해결할 수 없음

2. 예외 - 사용자의 잘못된 조작 or 개발자의 잘못된 코딩으로 발생 

둘의 공통점 : 둘다 프로그램이 예기치 못하게 종료된다

예외는 예외처리를 통해 프로그램의 종료를 막고 정상 실행할 수 있다

 

 

예외처리 2가지 방법

 

1. try/catch

  • try 안에서 에러가 발생하면 catch 메소드의 매개변수에 에러를 담고있는 exception 객체를 JVM이 넘겨주고 메소드를 실행시킨다

  • catch 구문의 메소드에 예외처리 로직을 넣어 예외를 처리할 수 있다

  • 예외 발생 여부와 관계없이 무조건 실행문이 있다면 finally 블록을 추가하여 실행한다 

try {
예외가 발생할 수 있는 실행문;
} catch(예외클래스 변수) {
핸들러; //예외를 처리하는 실행문
}

Throwable 클래스의 주요 메소드

  • public String getMessage() -Throwable 객체의 자세한 메세지 반환
  • public String toString() - Throwable 객체의 간단한 메세지 반환
  • public void printStackTrace() - Throwable 객체와 추적 정보를 콘솔 뷰에 출력

2. throws

  • throws 키워드를 사용해 예외를 상위 코드 블록으로 전달한다 
  • 예외를 1개 이상 선언할 수 있다
  • 부모 클래스의 메소드에 예외를 떠넘기는 throws 절이 없다면 자식 클래스의 메소드를 오버라이딩 할 떄 어떤 예외도 떠넘길 수 없다
public void method() throws IOException {
// 파일 쓰기와 관련된 실행문 .. 
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함