<< September 2010 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>
<< Delphiコンポーネント:FlashEngine | main |
メールチェックなどで、エラーメッセージ回避
 DelphiのIndyコンポーネントを使いながら、例えば、定期的なチェックを行わなければならない、メールチェック(受信ボックスに何通入っているかだけ把握するたぐい)などをする際、通信障害など起こった時、いちいち、エラーメッセージが出ていてはうざったい。

2点でエラーが出ることがわかった。
(1)スリープから復帰する時に、「例外 Connection Closed Gracefully」が出る。
(2)通信断の時に出る、Socketエラー

まず、(1)は、下のURLに情報があった。
・エラーはないはずなのに 例外 Connection Closed Gracefully が出る
デバッカオプション で言語固有の例外より情報を追加するだけだ。追加してその項目にチェックをはずすと、出なくなった。
try except on E : Exception do でも回避できそうな気がするが、楽なので、こちらを採用。

次に(2)は、下記の様に記述した。
uses IdStack を追加する。

var
 FMsgCount:Integer;
begin
try
try
 if IdPOP31.Connected then IdPOP31.Disconnect;

 IdPOP31.Connect;
  FMsgCount := IdPOP31.CheckMessages;
  Label_MailChk.Caption := '最新メール= '+Inttostr(FMsgCount)+' 件';

 except
  on E:EIdSocketError do
   //エラーが起こった時の処理   
   //if E.LastError=10060 then //HTTPのソケットエラー
   if E.LastError=11004 then //POP3のソケットエラー
  end;
 finally
  //絶対行いたいコードを書く
 end;




 
カテゴリ:Delphi Holic | 17:16 | comments(0) | trackbacks(0)
コメント
コメントする









この記事のトラックバックURL
http://delphiholic.hopeseeds.com/trackback/514005
トラックバック