컴퓨터프로그래밍/JAVA

JAVA - 검증, 예외

zelkova 2013. 9. 30. 08:46

 <목차로 돌아가기>


  검증(assertion)


검증(assertion) 요약

1.작성된 코드가 정상적으로 실행되는지 확인하기 위한 디버깅 기법

2. 문법의 확장으로 제공되기 때문에 추가 import문이 필요하지 않음

3. JAVA 1.4에 추가된 기능

4. JAVA 1.4에서 Assertion을 사용하기 위해서는 - source 1.4로 컴파일 

5. 자바 5.0에서는 자동으로 인식한다.



사용방법1

표현식이 false라면 AssertionError를 발생


assert 표현식;



사용방법2

표현식1이 false라면 assertionError에 표현식2를 String으로 변환해 전달하는 구조이다.

표현식1에는 boolean형으로 표현되는 식을 작성해야되고 표현식2에는 String형으로 변환될 수 있는 데이터형을 선언해야 한다.


assert 표현식1 : 표현식2;


ex)

assert cup != 4 : "cup==4";


실행결과 

Exception in thread "main" java.lang.AssertionError: cup=4 

at Test.main(Test.java:4)



  예외(Exception)

예외가 발생할 것이 예상되는 함수는 try 블럭 내부에 사용하고, 예외가 발생하면 catch블럭에서 받아서 예외 처리를 시행한다.


public String readLine() throws IOException


위와 같은 함수는 함수 수행 중 내부에 이상이 생기면 이것에 대하여 프로그래머가 이 이상에 대한 예외 처리를 해야 함을 의미한다. 



예외(Exception) 요약 

1. 경고는 오류와 예외로 분류할 수 있음

2. 오류는 프로긂 실행환경 이상으로 인한 경고

3. 예외는 프로그램 실행과 관련된 경고

4. 컴파일 시간에 경고 체크 유무에 따라 Unchecked와 checked로 분류할 수 있음


오류(Error) 정리

클래스 이름 

발생 원인 

ThreadDeath 

실행중인 스레드가 중지되었을 때 발생 

LinkageError 

클래스가 일치하지 않거나 존재하지 않을 때 발생 

VirtualMachineError 

자바 가상 머신에 심각한 문제가 발생했을 때 발생 


확인되지 않은 예외 정리

클래스 이름 

발생 원인 

AritmeticException 

0으로 정수를 나눌 때와 같이 적절하지 않은 계산 중 발생 

NullPointException 

응용프로그램이 객체가 필요한 경우 null을 사용하려고 시도할 때 발생 

ArrayIndexOutOfBouindsException 

배열이 잘못된 색인으로 접근된 것을 알리기 위해 발생 


확인된 예외


클래스 이름 

발생 원인 

FileNotFoundException 

지정된 경로에서 파일을 찾지 못할 경우 발생 

IOException

입출력 오류에 의해 발생 

SQLException 

데이터베이스 SQL 오류에 의해 발생 


예외 처리 방법



try {

//예외가 발생할 수 있는 코드

}catch(예외 객체){

//예외가 발생할 수 있는 코드

}finally{

//반드시 처리해야 하는 코드

}


ex)

try

{

   str = input_key.readLine();

}

catch (Exception e )

{

}


  예외처리 인계하기



위와 같이 직접 예외를 직접 처리하지 않고 이 함수를 호출하는 함수에게 예외 처리를 위임한느 방법도 있다. 아래와 같이 throws IOExeption을 추개해 주면 된다.

void Test() throws IOException

{

 

}


이 방법은 Test()라는 함수에서 예외처리를 하지 않을 뿐이지 test()를 호출하는 함수에서 반드시 예외처리를 해야한다.





반응형

'컴퓨터프로그래밍 > JAVA' 카테고리의 다른 글

JAVA - 기타 제한자.  (0) 2013.10.04
JAVA - 접근 제한자.  (0) 2013.09.30
JAVA - 분기문  (0) 2013.09.30
JAVA - 조건문 IF  (0) 2013.09.29
JAVA-반복문  (0) 2013.09.28