VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/05/23(Fri) 10:51
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe: 光磁気ディスク(MO)エラーなどについて

> try〜Catchイベントを使用してるときはResumeが使用できないので、
> Resumeに変わるものってあるのでしょうか?

試していませんが、こんな感じで対処できないでしょうか。

bolRetry = True
Do
  Try
      '
      'メインの処理
      '
      bolRetry = False    '成功したのでリトライは行わない
  Catch eFileNotFound As System.IO.FileNotFoundException
      'ファイルが見つからなかったときの処理
      '処理を中止するなら、bolRetry を False にする。
      'リトライするなら、bolRetry は True のまま。
  Catch eIOExcep As System.IO.IOException
      'その他のI/Oエラーに対する例外処理
  Catch 必要であればさらに別の例外フィルタを記述
      ':
      ':
      ':
  End Try
Loop While bolRetry


なお、MSDNの記事にある「Dr. GUI.NET #5」には、以下のような意見も書かれています。

》 On Error を含むコードを移植する場合、エラー処理の部分を変更する必要は
》 ありませんが、将来にわたってコードの理解や管理を容易にするためには、
》 エラー処理の更新を検討することをお勧めします。

》 新しく書くコードでは、構造化されたエラー処理を使う方が、コードが明快になります。
》 ただし、例外が発生した場所やその直後から実行を再開できる Resume の柔軟性が
》 必要な場合は、非構造化エラー処理(OnError)を使うのも手です。その場合、コードを
》 整理して書くことが大切です。くれぐれもスパゲッティ コードを書かないように!


> あとエラーコードってvb.netでも同じ番号なのでしょうか?
HRESULT系の値については、同じ番号のようです。それ以外のコードはわかりません。m(_ _)m

ただ、エラー番号だけで処理してしまうと、あとから見たときに意味がわかりにくいので、
各種例外クラスを使った判定も併用した方が良いでしょう。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -