예외 : 런타임 에러, 프로그램 실행 중 어떤 이유로 뻗는거 // 잘못된 코드, 부정확한 데이터, 예외적인 상황에 의하여 발생하는 오류
예외처리 : 런타임에러가 생겼을때 어떻게 대응할지에 대한 명세를 작성해 주는거-> 그러면 예외가 발생해도 프로그램이 뻗지 않고 계속 동작.
예외의 종류 3 : Error (시스템에서 발생) // RuntimeException (선택적으로 예외 처리) // IOException (예외 처리 필수)
체크 예외 : 컴파일러가 예외 처리를 강요
비체크 예외 : 컴파일러가 신경 안쓰는 예외
public static String readString() throws IOException{
//해당 함수의 몸통안에 IOExeption을 발생시키는 코드를 예외처리하지 않고 사용가능//해당 함수를 호출하는 녀석은 IOException에 대한 책임을 가짐
class DivideByZeroException extends ArithmeticException{
public DivideByZeroException()
{
super("0으로 나눌수는 없음.");
}
}
public class ExceptionTest {
public static void main(String[] args) {
double result;
try{
result = quotient(1,0);
}
catch(DivideByZeroException e){
System.out.println(e.toString());
}
}
public static double quotient(int n, int d)
throws DivideByZeroException
{
if( d == 0)
throw new DivideByZeroException();
return(double) n/d;
}
}
finally 블록의 절대적 필요성은 try나 catch구문에서 함수 return등으로,, 이 다음 코드로 진행이 아닌 경우 처리해야 될 코드를 수행하기 위해
' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글
Day20 입출력 (0) | 2016.04.08 |
---|---|
Day19 스레드 (0) | 2016.04.07 |
Day17 제네릭과 컬렉션 (0) | 2016.04.05 |
Day16 패키지 (0) | 2016.04.04 |
Day15 전략패턴 (0) | 2016.04.01 |