2011년 5월 25일 수요일

Null Flag(널 플레그)

* 패턴 이름 : 널 플래그
* 증 상 : 예외적인 상황에 대해 널 값으로 그 여부를 알 수 있도록 하는 코드에서 NullPointerException이 발생한다.
* 원 인 : 메소드를 호출하는 측에서 반환 값으로 사용되는 널 포인터를 제대로 검사하지 않아서이다.
* 해결책과 예방책 : 예외적인 상황에 대해서는 널을 반환하는 대신 예외를 발생시킨다.
나쁜 코드
public Object Next() {
 try{
  return internal.readLine();
 } catch (IOException e) {
  System.out.println(e.toString());
  return null; ----> 버그패턴 부분!
 }
}

변경된 코드
public Object Next() {
 try {
  String result = internal.readLine();
  if(result == null) {
   throw new NoSuchElementException();
  } else {
   return result;
  }
 } catch (IOException e) {
  throw new NoSuchElementException(e.toString());
 }
}

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...