こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

「タイプ初期化子が例外をスローしました」エラー何?

ネット検索で調べましたが、どうしてもわからないので、質問いたします。

VB2010ですが、デバッグで起動すると「タイプ初期化子が例外をスローしました」というエラーが出てしまい、プログラムが起動しません。

ご教授のほどよろしくお願いいたします。

1.スタートアップフォーム
   ○frmMENU
   ○LOADするときに標準モジュールを呼び出します。
    その呼び出し文でエラーになります。
Private Sub frmMENU_Load(ByVal eventSender As System.Object, ByVal eventArgs As  System.EventArgs) Handles MyBase.Load
gINIT()  ← ここでエラーになります
Me.Text = gSysName
Show()

End Sub

2.標準モジュール
Public Sub gINIT()

gSysName = "システム"
DS = "Provider=""Microsoft.Jet.OLEDB.4.0"";"
DS &= "Data Source="""
gMDB = "C:\MDB\ABC.MDB"""

End Sub

投稿日時 - 2011-06-06 16:27:05

QNo.6790396

困ってます

このQ&Aは役に立ちましたか?

7人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

クラスのSharedなフィールドの初期化に例外が発生した場合や,
クラスのSharedなコンストラクタの実行時に例外が発生した場合に,
System.TypeInitalizationExceptionはCLIによって投げられます。

ちなみに,.NET Framework的にはVBのModuleは単に全メンバがSharedなクラスなので,
Moduleにフィールドを持たせて初期化に失敗すると,TypeInitializationExceptionが発生します。

この時,InnerExceptionプロパティに発生した例外が含まれます。
ref) http://msdn.microsoft.com/ja-jp/library/system.typeinitializationexception.aspx
このため,TypeInitializationExceptionではなく,InnerExceptionプロパティの情報から,
例外が発生した原因を突き止める必要があります。
# 例外オブジェクトの型とかスタックトレースとかは重要な情報。

投稿日時 - 2011-06-07 03:52:00

お礼

大変ありがとうございました。
お蔭様で解決に至りました。

投稿日時 - 2011-06-08 08:41:52

あなたにオススメの質問