본문 바로가기

프로그래밍/Delphi

IHTMLElement.getAttribute EvariantTypeCastError 오류 피하기

IHTMLElement.getAttribute EvariantTypeCastError 오류 피하기

 

IHTMLElement의 메소드중 속성값을 얻어오는 getAttribute 사용시 제공된 속성이 없으면 다음과 같은 예외 오류가 발생한다.

 

raised exception class EVariantTypeCastError with Mesage 'Could not convert variant of type (Null) into type (OleStr)."

 

위 오류는 Element에 제공된 속성이 없어서 NULL값을 반환 할 때 받는 쪽에 할 당할 수 없는 NULL이 할당될 때 발생하는 오류로 다음과 같은 방법으로 해결 할 수 있다.

 

var 
  attrstr : string; 
begin 
  if OleVariant(elm).hasAttribute('attr') then
     attrstr := elm.getAttribute('attr') 
  else 
     attrstr := ''; 
end;

 

또다른 방법으로 다음과 같은 방법들이 있다.

○ VarIsNull 사용

   if not VarIsNull(HTMLElement.getAttribute('attr')) then attrstr := HTMLElement.getAttribute('attr');

IHTMLElement5 타입캐스팅 이용

   if (elm as IHTMLElement5).hasAtribute('attr') then  attrstr := HTMLElement.getAttribute('attr');