-
14일 차 예외의 종류삼성SDS_멀티캠퍼스/Java 2015. 9. 25. 09:05반응형
# 예외 : 프로그램이 실행중에 종료되게 만드는 원인.
크게 RuntimeException, IOException, Error 로 나뉜다.
# Error : 우리의 잘못이 없는데 프로그램이 죽는것으로 어쩔수 없다. (시스템 상에서 발생하는 치명적인 에러) - 예외처리 대상이 아니다.
- OutOfMemoryError
- AWTError
- ThreadDeath
# RuntimeException : 우리(개발자)가 잘못한것. 잘못 안 할수 있던 것이다.
예외처리의 필수대상은 아니다.
# IOException : 필수 예외처리 대상 !!!! ※중요※
# 체크 예외와 비체크 예외
자바 컴파일러는 RuntimeException 은 확인하지 않는다. 그밖의 예외는 모두 처리를 확인한다.
# 다형성과 예외
예외도 객체이기 때문에 new 연산자로 생성된다.
try {
}
catch(NumberException e){
//NumberException 하위 클래스의 에러들도 다 잡힘.
}
# 예외처리 방법 두가지
- 직접 처리 방법
import java.util.InputMismatchException;
import java.util.Scanner;public class Test {
public static void main(String[] agrs) {System.out.println(readString());
}
public static String readString() {
byte[] buf = new byte[100];
System.out.print("문자열을 입력하시오: ");
try {
System.in.read(buf); //read 메소드는 체킹예외인 IOException 을 발생시키기 떄문에
//호출시 예외처리를 해주지 않으면 컴파일러가 에러를 알려줌.
} catch (IOException e) { // 예외처리를 그자리에서 처리.
System.out.println(e.getMessage());
e.printStackTrace();
}
return new String(buf);
}
}- 해당문장에 포함된 함수를 호출하는 놈에게 토스
import java.io.IOException;
import java.util.InputMismatchException;
import java.util.Scanner;public class Test {
public static void main(String[] agrs) {try {
System.out.println(readString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //함수를 호출 하는 본문에서 처리}
public static String readString() throws IOException { //예외처리 책임전가
byte[] buf = new byte[100];
System.out.print("문자열을 입력하시오: ");System.in.read(buf); // read 메소드는 체킹예외인 IOException 을 발생시키기 떄문에 호출시 예외처리를 해주지 않으면 컴파일러가 에러를 알려줌.
return new String(buf);
}
}
출처 : http://justbaik.tistory.com/29반응형'삼성SDS_멀티캠퍼스 > Java' 카테고리의 다른 글
14일 차 정규표현식 (0) 2015.09.25 14일 차 예외처리 실습예제 (0) 2015.09.25 14일 차 Try - catch 문 (예외처리) (0) 2015.09.25 13일 차 문자열 잘라내기 (0) 2015.09.23 13일 차 MVC변환 (0) 2015.09.23