IdHttpの例外処理


Fpro  2007-09-04 23:17:45  No: 27667

現在yahoo!デベロッパーネットワークで公開されている「yahoo!カテゴリ検索Webサービス」を使って開発を進めております。
サービスからのレスポンスを取得するのにIdHTTPのGetを使用しているのですが、通常は無事レスポンスが得られるものの、
urlに不備があった場合(urlに単語を入れてやることでその単語のカテゴリ検索の結果をxmlで取得してくれるのですが、一部の半角記号などは検索単語として認識してくれず不備が出てしまいます)などに

 EIdHTTPProtocolException クラスの例外を生成しました。
'HTTP/1.1 400 Bad Request'

のエラーが出てしまいます。
エラーだった場合何も行わないという処理をしたいのですが、
try〜except文でうまくエラー部を飛ばすことが出来ず…
初心者で例外処理を書くのは初めてなのですが、このような使い方であっているでしょうか?
ご指導よろしくお願いします。

手続き--------------------------------------------------------
///getxml手続き///memo2にxmlを取得。
procedure getxml(xmlres:Tstringlist;IdHttp1:TIdHttp;url:string); //xmlをget
  begin
 try
  xmlres.Text:=UTF8Decode(IdHttp1.Get(url));
 expect on EIdHTTPProtocolException do begin
  showmessage('Error!');  ←ここを行う前に止まってしまいます
 end;  
end;
---------------------------------------------------------
実行部 keyword:=カテゴリサーチに掛けたい単語

query:=UTF8Encode(keyword);   //keywordをUTF8でEncode
   showmessage(keyword+'を検索しようとしています');
  url:='http://api.dir.yahoo.co.jp/Category/V1/directorySearch?appid=searchjunle&integer=1&query='+query;
  getxml(xmlres,IdHttp1,url);    //xmlresにurlの応答を取得
  memo2.Lines.Assign(xmlres);


BEACHBOYS Forever  2007-09-10 01:23:29  No: 27668

真琴:「質問のように'Error!'ダイアログの前で止まることないけど…」
海都:「IDEでの実行なら、その前に'Connection Closed Gracefully'が出ることはあるよ」
真琴:「あっ、そうなんだ。それを言ってるのかなぁ、でもそれはイイんでしょ?」
春子:「URLに空白があると'HTTP/1.1 400 Bad Request'エラーになるみたいね」
真琴:「そうなの、'ビーチボーイズ ドラマ'を検索キーワードにしたら、そのエラー」
海都:「マコトちゃん、AND検索するなら、'ビーチボーイズ AND ドラマ'のようにした方がいいよ」
真琴:「でも、空白があるとダメでしょ? ブラウザではエラーにならないのにね、なんで?」
海都:「ブラウザはネ、自動的にURLエンコードで空白を'%20'や'+'に変えてくれるんだ」
真琴:「そっか、IdHTTPでは自分でその変換しなくちゃダメなのね」
海都:「あと、エラーでダイアログ出したくなかったら、exceptの後に何も書かなきゃいいんだけど」
広海:「けどコノ質問者、公開しちゃいけないappid晒しちゃって焦ってたりして…」
春子:「もう、風でどっか飛んでっちゃえってキモチかな? 分かるけどね」
勝爺:「イイ風が吹いてくるな、いよいよオレの季節か…」
真琴:「おじいちゃん、お願いだから危ないことしないでね、歳なんだから」
勝爺:「お前まで年寄り扱いするな、オレはまだまだ若いんだ、これからよ」
真琴:「おじいちゃん、じゃなくてセンパイ、ちゃんと約束してね」
勝爺:「おぅ、分かった分かった」
広海:「ホントに分かったのかなぁ、素直じゃないジジィだから…」
勝爺:「ナンか言ったか?」
広海:「いぇ、ナニも…」
真琴:「ねぇ、このURLの中の&integer=1って、もしかして&type=0とかの間違いなんじゃない?」
海都:「オレもそう思うけどね、エラーは出ないし、カレンダの絵と同じであってもなくても…」
春子:「もう9月かぁ、夏の終わりって嫌いなのよね…でも、なんで夏の終わりだけ特別なんだろ」
真琴:「アタシもそう思う、夏は終わって欲しくない。ほかの季節の終わりなんて気にしないのに」
勝爺:「これからがイイんだよ、これからココがオレの海になるんだから」
海都:「だんだん涼しくなってくると、夏って感じはなくなるよね、やっぱり」
真琴:「でもでも、昨日も今日もスッゴク、スッゴク暑くて、まるで夏のマンナカにいるみたい」
広海:「台風の置き土産じゃない? もし被害が何もなかったら、台風もいいね」
真琴:「ねぇねぇ、夏はまだ終わらないよね?」
広海:「もちろん。まだまだオレらの夏は終わってないよ、マコト」
春子:「海が似合うヒロミくんは、イツデモ夏って感じするもんね」
海都:「俺は?そう見えないかなぁ」
広海:「アンタがココへ来た時はゼンゼン無かったね」
海都:「今はどう?俺変ってないかな」
広海:「変った、変った。あんなイイ会社やめちゃったんだもんね、今はオツムが夏」
海都:「ナンだよソレ」
広海:「マコト、お前は…胸が夏になった方がいいかもな」
真琴:「なによぉソレ」
広海:「暑さでチチが膨らんで、デカクなるよ」
真琴:「バ〜〜〜〜〜ッカ!!」
Thank you for wonderful summer.
We are the BEACHBOYS & GIRLS!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加