2013년 3월 22일 금요일

델파이 9장

1. Exception 처리


에러처리는 사용자들에게 덜 빡치게(?) 해주는 아주 중요한 것이다.

에러가 났을 때 고객 지원 전번을 띄어주는 업체와

걍 아무런 메세지 없이 종료되는 업체는 고객들에게 많은 생각을 가지게 해줄 것이다.

델파이에서 제공해주는 기본 에러 처리 개체 종류는

입출력/힙/정수 일치/부동 소수정 일치/타입 캐스팅/
변환/하드웨어/데이터베이스/문자와 리스트

등의 에러처리를 제공해 준다.

에러처리 블록의 기본 구문이다.

try .... finally블록

try
   statement1;
   statement2;
finally
   statement3;
   statement4;
end;

  • 오류가 발생하지 않으면 모든 문장들이 순차적으로 실행
  • 오류가 발생했을 경우에는 바로 finally 부분의 코드로 이동하여 실행
  • 오류가 발생하던 하지 않던 finally 부분은 항상 실행
  • 주로 이 블록은 개체, 파일, 윈도우 자원 등을 보호하기 위해 구현
-------------------------------------------------------------------------------
try...except 블록

try
   statement1;
   statement2;
except
   On e:Exception Type1 Do
      statement3;
   On e:Exception Type2 Do
      statement4;
end;

  • 오류 발생 없이 코드가 수행될 경우에는 Except 문의 코드는 실행되지 않음
  • 오류가 발생하면 Except 부분으로 옮겨져서 수행
  • 오류 개체가 try...except 블록으로 들어와 처리되면 시스템은 더이상 오류 상황을 보지 않고 정상적으로 처리 함
  • 특정 타입의 Excpetion 개체를 검색하기 위하여 On... Do문을 사용할 수 있으며 그 개체의 인스턴스를 사용하기 위한 임의의 변수 e를 사용할 수 있음
  • Exception 개체는 이 변수를 통해 해당 개체의 속성과 메소드에 접근할 수 있음
  • On...Do문의 어떤 것도 현재 Excpetion에 적용되지 않으면 else 부분을 제공하여 실행하도록 할 수 있음. 
  • 만일 else 부분이 제공되지 않으면 계속 바깥쪽의 try 문을 계단식으로 찾아감
  • try...except 나 try...finally 블록은 블록 내에 중첩하여 사용할 수 있음

2. Raise


오류 조건을 표시하기 위해 예약어 Raise를 사용하여 일부러 에러를 유발 시킬 수 있다.
에러를 일부러 유발시키는 경우는 주로 입력 체크나 조건 체크에 사용한다.
예) 패스워드가 3회 이상 틀렸을 때.

사용법
Raise Exception.Create('입력 오류');

3. EAbort Exception


델파이에는 조용한 에러처리로 불리는 특별한 Exception 클래스가 있다.
이를 Silent Exception이 발생했다고 한다.
Exception과 방식은 동일하지만 대화 상자가 나타나지 않는다.

Raise EAbort Create('보이지 않는 메세지');


내용은 더 있는데.........
쓰기가 힘들다 ㅡㅡ;; 감기도 걸리고 허리도 아프고 ㅠㅠ
아아 오랜만에 맘먹고 공부하는데 태클이 ㅠㅠ

댓글 없음:

댓글 쓰기