- - PR -
強制終了するには
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-08-31 18:59
いつもありがとうございます。
VB2005でデータベース更新時に 異常終了した場合、強制終了させたいのですが 下記のように書いても終了しません。 Try Catch ex As Exception MessageBox.Show(ex.Message) Me.Close() End Try 6.0の時は Unload Meで終了したと思うのですが。 何か方法はありますか? | ||||
|
投稿日時: 2007-08-31 19:23
Application.Exit() とか
End とか どうでしょう。 特に,Endで終了できなければ,他に方法はないと思います。 でも,Me.Close()で閉じない理由を探った方がよいかと思います。 Me.Close()が無視されるのですか? | ||||
|
投稿日時: 2007-08-31 21:03
この Unload Me は MainForm での Me.Close に相当するのですが。 そもそも Unload Me は強制終了ではありません。 VB6 では End ステートメントが強制終了です。 そしてこれは .NET では System.Windows.Forms.Application.Exit メソッドではなく System.Environment.Exit メソッドに相当します。 YAS さんが書かれていることの繰り返しになりますが、このようなメソッドを利用する必要はなく、MainForm が Close メソッドされれば Windows アプリケーションは終了します。 終了しなければなりません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2007-08-31 22:49
YASさん、じゃんぬねっとさん
ありがとうございます。 今は Application.Exit() End の検証ができませんので 明日検証します。 ボタンクリック後 Try データベース更新実行 Catch ex As Exception MessageBox.Show(ex.Message) Me.Close() End Try 続く処理があります。 とコーディングしてありますが Me.Close()としても その後の 続く処理を実行してしまうのです。 MessageBox.Show(ex.Message) でエラーを表示させ okボタンを押すことでFormを閉じようと思ったのですが・・ よくよく考えると閉じてしまうのもおかしいですよね。 MessageBox.Show(ex.Message) でエラーを表示させ okボタンを押すとExit Subの方が普通でしょうか? **************************** ボタンクリックイベント Try データベース更新実行 Catch ex As Exception MessageBox.Show(ex.Message) Exit Sub End Try 続く処理 End Sub ************************* すいません、初めてのことで・・ | ||||
|
投稿日時: 2007-09-01 00:51
処理を中断してFormを閉じるのなら,
としないと,Me.Close()の続きは処理が続いてしまします。 FormをClose()してもその瞬間にFormがなくなってしまう訳ではありません。 Close()した後も実行中の処理は続きますし,プロパティなどにもアクセス可能なものがあります。そのあたりは普通のクラスと違って内部的にいろいろあるようです。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=31893&forum=7&start=0 | ||||
|
投稿日時: 2007-09-01 09:07
強制終了反対
リソースがリークする 終了処理にまわして、行儀よく終わってください。 | ||||
|
投稿日時: 2007-09-01 14:03
Jittaさん
YASさん じゃんぬねっとさん ありがとうございます。 少し横道にそれるかもしれませんが 呼び出し元プログラムからSQL文を渡して DataViewを返すDLLがあります。 少し省略してありますが DLLのコードは Public Function DATA(ByVal pSQL As String) As DataView Try DA.Fill(DS) Return DS.Tables(0).DefaultView Catch ex As Exception Finally Cn.Close() End Try End Function です。 Catch ex As Exceptionで エラーをも呼び出し元に返したいのですが (呼び出し元でエラーをメッセージボックスで表示させたい為) 可能でしょうか? | ||||
|
投稿日時: 2007-09-01 19:22
件名とは関係ありませんし、横道にしてもこれまでの経緯からして一答で終わるとは思えません。 また、本題の方の回答を無視して進めるべきものだとも思えません。 別スレッドを立ててそちらで話を展開してください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |