■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
|
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った): |
■ ページの共有: |
[ サイト内検索 ]
![]()
カスタム検索
|
#44645-0インスタンスの破棄について匿名446452001-07-03(火) 14:44
#44667-0RE#44645:インスタンスの破棄について藤代千尋2001-07-03(火) 22:01
#44667-0RE#44645:インスタンスの破棄について藤代千尋2001-07-03(火) 22:01
匿名446452001-07-03(火) 14:44
初歩的な質問ですが、処理中にエラーで落ちたときに オブジェクト(クラスやコネクション)は自動的に破棄されるのでしょうか? また、破棄されないとすれば エラー処理の中で If (OBJ Is Nothing) =False then Set OBJ = Nothing End If と、やってるんですが(オブジェクトの数だけ) もっと効率的に破棄する方法はあるんでしょうか? よろしくお願いします。(VB6SP4)
藤代千尋2001-07-03(火) 22:01
> 初歩的な質問ですが、処理中にエラーで落ちたときに > オブジェクト(クラスやコネクション)は自動的に破棄されるのでしょうか? > また、破棄されないとすれば > エラー処理の中で > If (OBJ Is Nothing) =False then > Set OBJ = Nothing > End If > と、やってるんですが(オブジェクトの数だけ) > もっと効率的に破棄する方法はあるんでしょうか? 確認しました。エラー終了のときには、破棄されません。ちょうど、 End(強制終了)を実行したときと、同じになるようです。(^_^;) エラーをトラップし、そこで Unload Form1 などとして、プログラ ムを終了させれば、クラスは破棄されます。なので、オブジェクトを 解放する一番簡単な方法は、必ずエラートラップし、エラー終了させ ないことです。(^_^) 「必ずエラートラップするなんて、大変だ」と思われるかもしれませ んが、それほどでもないです。トップ レベルのプロシージャにトラッ プを付けるだけです。 トップレベル プロシージャは、どこからも呼ばれないプロシージャで す。トップレベルにエラートラップがあれば、そこから呼ばれる部分で 発生したエラーは、トップレベル プロシージャで捕まえられます。 (途中のプロシージャでトラップしていれば別。) トップレベル プロシージャは次のものです。 ・Sub Main プロシージャ ・フォーム、コントロールなどのイベント プロシージャ #別に全部に付ける必要はないです。(^_^;) 「ここは簡単なことしかしていないので、エラーは起こらない」 と思えるプロシージャならエラートラップを付ける必要はありません。
このページと関連する記事:
#16283-0ActiveReportViewerの参照ファイルの解放2000-11-15(水) 16:43#4974-01フォーム内で複数のプロシージャをCallする時のエラー1999-12-08(水) 15:10
#437-2キーボードフック中の異常終了2003-08-18(月) 23:12
#26361-0クラスオブジェクトは、自分自身を破棄できますか?2000-07-24(月) 15:45
#4386-2ソフト(自作)を終了させようとすると、強制終了の形で終了してしまう2002-01-28(月) 23:18
#44414-0インスタンスフォームのオブジェクト名について2001-06-25(月) 13:38
#18372-0フォームの作成と解放2000-03-23(木) 09:59
#12483-0オブジェクトがNothingかどうか調べたい1999-12-27(月) 17:16
#20-4LoadしていないフォームをUnloadしたら・・・?1999-06-17(木) 21:26
#10377-0NEW宣言したオブジェクト変数のインスタンス存在チェック1999-11-25(木) 20:29