- PR -

プログラムの終了方法

投稿者投稿内容
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-03-13 13:18
先ほどはありがとうございました。

もう1点教えて欲しいことがあります。
VB2005の環境です。

---- ソース --------------------
Private Sub timJob_Tick '10秒毎に(タイマーのInterval設定)
Try
標準モジュール処理へ

Catch ex As Exception
MsgBox("エラー") 
Me.Close()
End Try
End Sub
--標準モジュール処理-----------
Function Syori

On Error GoTo ErrSyori

いろいろ処理(ここでエラーを発生させた場合)

ErrSyori:
Call MsgBox("モジュールエラー")

End Function
--------------------------------

このような処理で
標準モジュール処理の中でエラーが発生した場合
モジュールエラーと表示しますが
そのままにしておくと
そのままtimJob_Tickが10秒毎に発生する為
モジュールエラーのMsgBoxが何個も表示してしまうのです。

何とか1回のみの表示にしたいのですが・・

何か良い方法ないでしょうか?

taku2888
会議室デビュー日: 2008/03/13
投稿数: 6
投稿日時: 2008-03-13 14:02
エラー処理のところでタイマーを止めてやればよいのでは。
Yam
大ベテラン
会議室デビュー日: 2003/09/13
投稿数: 179
お住まい・勤務地: だんじり祭りの地
投稿日時: 2008-03-13 17:04
例外の処理とスロー
_________________
音速の定時退社!
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-03-13 18:21
タイマーでなかったら
"モジュールエラー"は1回のみの表示なのですが

タイマーイベント(TICK)が発生する為
いくつも表示してしまうのですが

「エラー処理のところでタイマーを止めてやればよいのでは」
とありますがモジュールでのエラーですが

どのように止めるのでしょうか??

なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-03-13 18:39
自分なりに1つ思いつたのがあります。

--標準モジュール処理-----------
Function Syori

On Error GoTo ErrSyori

いろいろ処理(ここでエラーを発生させた場合)

ErrSyori:
Form.Timer.Stop() '*** ここにこう書くと1回だけの表示になります
Call MsgBox("モジュールエラー")

End Function

モジュールでForm.Timer.Stop() と書くには
どうでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-03-13 18:42
引用:

なびさんの書き込み (2008-03-13 18:21) より:

「エラー処理のところでタイマーを止めてやればよいのでは」
とありますがモジュールでのエラーですが
どのように止めるのでしょうか??


ではそのモジュールの関数はどこから呼ばれているのでしょうか? そのあたりを意識すると方法が思いつくのではないでしょうか。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-03-13 18:45
引用:

なびさんの書き込み (2008-03-13 18:39) より:

ErrSyori:
Form.Timer.Stop() '*** ここにこう書くと1回だけの表示になります
Call MsgBox("モジュールエラー")


ここに MessageBox の記述があるから問題が表面化しているという事実もありますね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-03-13 19:06

ありがとうございます。

ErrSyori:
MsgBox("モジュールエラー")

のMsgBoxがなかった場合
Form1に制御が戻るのですが
Catch ex As Exception で
引っかかりません。

標準モジュール処理が
あまりにも長く、複雑な為
Tryにしていないからでしょうか?

Throwでもすればよいのでしょうが・・

どうすべきでしょうか?

スキルアップ/キャリアアップ(JOB@IT)