■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#44645-0インスタンスの破棄について匿名446452001-07-03(火) 14:44
     #44667-0RE#44645:インスタンスの破棄について藤代千尋2001-07-03(火) 22:01
#44645-0
インスタンスの破棄について
初歩的な質問ですが、処理中にエラーで落ちたときに
オブジェクト(クラスやコネクション)は自動的に破棄されるのでしょうか?
また、破棄されないとすれば
エラー処理の中で
If (OBJ Is Nothing) =False then
    Set OBJ = Nothing
End If
と、やってるんですが(オブジェクトの数だけ)
もっと効率的に破棄する方法はあるんでしょうか?

よろしくお願いします。(VB6SP4)
#44667-0
RE#44645:インスタンスの破棄について
> 初歩的な質問ですが、処理中にエラーで落ちたときに
> オブジェクト(クラスやコネクション)は自動的に破棄されるのでしょうか?
> また、破棄されないとすれば
> エラー処理の中で
> If (OBJ Is Nothing) =False then
>     Set OBJ = Nothing
> End If
> と、やってるんですが(オブジェクトの数だけ)
> もっと効率的に破棄する方法はあるんでしょうか?

確認しました。エラー終了のときには、破棄されません。ちょうど、
End(強制終了)を実行したときと、同じになるようです。(^_^;)

エラーをトラップし、そこで Unload Form1 などとして、プログラ
ムを終了させれば、クラスは破棄されます。なので、オブジェクトを
解放する一番簡単な方法は、必ずエラートラップし、エラー終了させ
ないことです。(^_^)

「必ずエラートラップするなんて、大変だ」と思われるかもしれませ
んが、それほどでもないです。トップ レベルのプロシージャにトラッ
プを付けるだけです。

トップレベル プロシージャは、どこからも呼ばれないプロシージャで
す。トップレベルにエラートラップがあれば、そこから呼ばれる部分で
発生したエラーは、トップレベル プロシージャで捕まえられます。
(途中のプロシージャでトラップしていれば別。)

トップレベル プロシージャは次のものです。
・Sub Main プロシージャ
・フォーム、コントロールなどのイベント プロシージャ
#別に全部に付ける必要はないです。(^_^;) 
 「ここは簡単なことしかしていないので、エラーは起こらない」
 と思えるプロシージャならエラートラップを付ける必要はありません。
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)