예외 : 런타임 에러, 프로그램 실행 중 어떤 이유로 뻗는거 // 잘못된 코드, 부정확한 데이터, 예외적인 상황에 의하여 발생하는 오류


예외처리 : 런타임에러가 생겼을때 어떻게 대응할지에 대한 명세를 작성해 주는거-> 그러면 예외가 발생해도 프로그램이 뻗지 않고 계속 동작.


예외의 종류 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

+ Recent posts