14일 차 예외의 종류
# 예외 : 프로그램이 실행중에 종료되게 만드는 원인.
크게 RuntimeException, IOException, Error 로 나뉜다.
# Error : 우리의 잘못이 없는데 프로그램이 죽는것으로 어쩔수 없다. (시스템 상에서 발생하는 치명적인 에러) - 예외처리 대상이 아니다.
- OutOfMemoryError
- AWTError
- ThreadDeath
# RuntimeException : 우리(개발자)가 잘못한것. 잘못 안 할수 있던 것이다.
예외처리의 필수대상은 아니다.
# IOException : 필수 예외처리 대상 !!!! ※중요※
# 체크 예외와 비체크 예외
자바 컴파일러는 RuntimeException 은 확인하지 않는다. 그밖의 예외는 모두 처리를 확인한다.
# 다형성과 예외
예외도 객체이기 때문에 new 연산자로 생성된다.
try {
}
catch(NumberException e){
//NumberException 하위 클래스의 에러들도 다 잡힘.
}
# 예외처리 방법 두가지
- 직접 처리 방법
public class Test { System.out.println(readString()); } public static String readString() { |
- 해당문장에 포함된 함수를 호출하는 놈에게 토스
import java.io.IOException; public class Test { try { } public static String readString() throws IOException { //예외처리 책임전가 System.in.read(buf); // read 메소드는 체킹예외인 IOException 을 발생시키기 떄문에 호출시 예외처리를 해주지 않으면 컴파일러가 에러를 알려줌. return new String(buf); |
출처 : http://justbaik.tistory.com/29