• ベストアンサー

[Delphi] Socketのエラーを抑制する方法

バックグラウンドで動作して、インターネットからWebの新着情報を持ってきて画面の隅に表示するというアプリケーションをDelphi + TClientSocketで作成しています。 フォーム作成時 : ClientSocket1.open; 接続時 : ClientSocket1.socket.sendtext(リクエスト内容); 受信時 : フォームの情報を更新 タイマー : 一定時間おきに接続イベントを発生 そこで質問なのですが、ネットに繋がっていない等でDNS参照に失敗すると 「Windowsソケットエラー API ASync Lookup」 と、APIからエラーが返ってきます。一定時間おきにチェックするので、非接続時にこれが毎回出てくるとうざいということで、接続失敗しても黙っているように変更したいのですが、どのようにしたら良いのでしょうか・・・。 TClientSocketのヘルプが無くてわかりませんでした(汗

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ClientSocketのイベント「OnError」にて、「ErrorCode:=0;」を設定してください。 以前私も苦労したことがあります。

pythian
質問者

お礼

これを設定しないとエラーが出てしまうんですね。 試したところ、成功しました。ありがとうございます!

その他の回答 (1)

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.1

こんにちは、honiyonです。  tryとexceptを使うと幸せになれると思います。  参考になれば幸いです(..

pythian
質問者

補足

try - exceptはDelphiが生成した例外を捕えるものだと思っていたのですが、 ただのAPIのエラーだと思って試していませんでした。 (デバッガが例外で停止しないオプションになっていたので気づきませんでした) そこで、ClientSocket1.open;の部分だけtryして、exceptで プログラムを終了するようにしてみたのですが、変化はありませんでした。 もう少し調べてみます。早速のアドバイスありがとうございます。

関連するQ&A