OpenURL実行時のエラー回避について

解決


新参者  2003-12-14 08:27:39  No: 110676

OpenURLを使用して複数のURLのHTMLを取得しています。(For Next文で繰り返し
処理)その際、タイムアウトのエラーが発生した場合、エラーメッセージが
表示され処理が中断します。

For ii = 0 to n
  ''URL(ii)は取得するURL名   
  bytestr() = Inet1.OpenURL(URL(ii), icByteArray) 
  ''ここから取得したHTMLの具体的な処理開始
      
Next ii

何らかのエラーが発生したときエラーメッセージを表示せずその処理を飛ばし次の処理をするにはどのようにすればよいのでしょうか?
"404 Not Found"などはHeader情報でエラーの判別ができるのですが...
以上よろしくお願い致します。


魔界の仮面弁士  2003-12-14 08:49:51  No: 110677

「On Error Resume Next」でトラップするとか。


新参者  2003-12-16 06:36:56  No: 110678

魔界の仮面弁士さま回答ありがとうございます。

On Errorステートメントも使用しましたが
「実行時エラー'35756' 要求を完了できません。」や「タイムアウトエラー」
のポップアップが表示されます。
私のOn Errorステートメントの使用方法が間違ってる可能性大ですが、
ご迷惑でなければもう少しお付き合いください。

現在以下のようなプログラムを実行しています。

For ii = 0 To cnt
  v_inet_err = 0
  Inet1.RequestTimeout = 10
  bytestr() = Inet1.OpenURL(url(ii), icByteArray)

  ''----------------------------------------------- 
  '' if ( 実行時エラー の場合) then
  ''  call  リトライ処理
  ''    err_url = err_uel & url(ii) & vbCrLf '' ← エラーでうまく
取得できないURLを保存
  ''    GoTo continue
  ''  End If
  ''-------------------------------------------------

  err_chk = header_err_chk()  '' ← Inet1.GetHeader()を解析して404エラー
の判断
  If (err_chk = 1) Then
    err_url = err_uel & url(ii) & vbCrLf '' ← エラーでうまく取得
できないURLを保存
    GoTo continue
  End If

  (HTML取得後の処理を実行)

  continue:
Next ii

On Error Resume Nextでトラップした場合は上記のコメントアウト
しているIFブロックに入る判断をどうすれば良いか分りかねております。
エラーが判別できれば再度リトライする処理を加えそれでもエラーが発生
する場合はエラーリストという形で別途リストとして保存しようと考えており
ます。


魔界の仮面弁士  2003-12-16 06:48:21  No: 110679

『If Err.Number <> 0 Then』で判定してください。
エラー発生時には、Err.Number に 0以外の値がセットされます。

なお、Err.Clearするか、On Errorステートメントを使うことで、
Err.Numberの値は 0 にリセットされます。

エラー処理の詳細な手順については、VB6のヘルプ(MSDNライブラリ)で、
以下の項を参照してみてください。

[Visual Studio 6.0 ドキュメント]
└[Visual Basic ドキュメント]
  └[Visual Basic の使用方法]
    └[プログラミング ガイド]
      └[Visual Basic を使ってできること]
        └[コードのデバッグおよびエラー処理]


新参者  2003-12-17 08:02:49  No: 110680

魔界の仮面弁士さま>

エラーの取得無事できました。
ご教授ありがとうございました。


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

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






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