C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: ハンドルされていないバグ


(過去ログ 117 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■68739 / inTopicNo.1)  ハンドルされていないバグ
  
□投稿者/ 白鴉 (1回)-(2013/11/11(Mon) 09:51:52)

分類:[VB.NET/VB2005 以降] 

デバッグ時に起きた問題です。

ソースコードを書き終え、ビルドがつつがなく完了した後、デバッグを行いました。
その時出てきたエラーが、「FormatExceptionはハンドルされませんでした」というものです。

調べたところメソッドの引数の型が正しくない時に出るエラーのようですが、問題はこのエラーが出た場所。
program.csのこの文のところなのです。
Application.Run(new Form1());

ここで使用されている変数はFrom1のみなので、あまり無いことだとは思いますがForm1がForm型に対応していないと判断し、
Form A=new Form1();
と定義、
Application.Run(new A());
と書き換えましたが、同じエラーが発生しました。

この場所は今までエラーが出たことが無かったのでちょっと手が出せません。
よろしくお願いします。


なお開発環境はwindowsXP SP3、使用したエディタはvisual basic 2010 c#です。
引用返信 編集キー/
■68741 / inTopicNo.2)  Re[1]: ハンドルされていないバグ
□投稿者/ 魔界の仮面弁士 (418回)-(2013/11/11(Mon) 10:00:23)
2013/11/11(Mon) 10:14:04 編集(投稿者)

No68739 (白鴉 さん) に返信
> その時出てきたエラーが、「FormatExceptionはハンドルされませんでした」というものです。
String.Format の引数リストの数が間違っている場合や、
Double.Parse で変換不能な文字列が渡された場合などに、
そのようなエラーが発生しますね。

データバインドや Parse メソッドなど、何らかの書式設定を
行っている場所はありませんか? 書式もしくはデータ内容に
不整合があると、デザイン時には問題なくとも、実際のデータが
渡されたタイミングでエラーとなる可能性があります。

> Application.Run(new Form1());
エラーそのものは、Form1 のコンストラクタ内で
発生したものと推察します。
エラー箇所が特定し難いということは、コントロール側が、
リフレクションやデータバインド絡みの問題が起きているのかも。


> ここで使用されている変数はFrom1のみなので、
> あまり無いことだとは思いますがForm1がForm型に対応していないと
それは根拠に乏しいのではないかな…。
少なくとも変数名に左右されるような物では無いと思いますよ。

変数名が A だろうと Form1 だろうと From1 だろうと、
Run メソッド側をそれを検知できませんし。
変数名ではなく、インスタンスの内容を疑うべきかと。


例外メッセージの中に、発生場所(メソッド名)を並べた
スタックトレースはありませんでしたけ? それを見れば、
具体的にどの箇所で問題が生じているのかを追跡できるかと思います。
引用返信 編集キー/
■68742 / inTopicNo.3)  Re[2]: ハンドルされていないバグ
□投稿者/ 白鴉 (2回)-(2013/11/11(Mon) 11:37:28)
2013/11/11(Mon) 14:06:57 編集(投稿者)

No68741 (魔界の仮面弁士 さん) に返信
お早い返信ありがとうございます。
コンストラクタとバインド関連のコードを中心にチェック中ですが少し進展があったので・・・

> 例外メッセージの中に、発生場所(メソッド名)を並べた
> スタックトレースはありませんでしたけ? それを見れば、
> 具体的にどの箇所で問題が生じているのかを追跡できるかと思います。

発見しましたのでコピペしてみました。

場所 System.Windows.Forms.Binding.FormatObject(Object value)
場所 System.Windows.Forms.Binding.PushData(Boolean force)
場所 System.Windows.Forms.Binding.UpdateIsBinding()
場所 System.Windows.Forms.Binding.CheckBinding()
場所 System.Windows.Forms.Binding.SetListManager(BindingManagerBase bindingManagerBase)
場所 System.Windows.Forms.ListManagerBindingsCollection.AddCore(Binding dataBinding)
場所 System.Windows.Forms.BindingsCollection.Add(Binding binding)
場所 System.Windows.Forms.BindingContext.UpdateBinding(BindingContext newBindingContext, Binding binding)
場所 System.Windows.Forms.Control.UpdateBindings()
場所 System.Windows.Forms.Control.OnBindingContextChanged(EventArgs e)
場所 System.Windows.Forms.Control.OnParentBindingContextChanged(EventArgs e)
場所 System.Windows.Forms.Control.OnBindingContextChanged(EventArgs e)
場所 System.Windows.Forms.ContainerControl.OnCreateControl()
場所 System.Windows.Forms.Form.OnCreateControl()
場所 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
場所 System.Windows.Forms.Control.CreateControl()
場所 System.Windows.Forms.Control.WmShowWindow(Message& m)
場所 System.Windows.Forms.Control.WndProc(Message& m)
場所 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
場所 System.Windows.Forms.Form.WmShowWindow(Message& m)
場所 System.Windows.Forms.Form.WndProc(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
場所 System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)
場所 System.Windows.Forms.Control.SetVisibleCore(Boolean value)
場所 System.Windows.Forms.Form.SetVisibleCore(Boolean value)
場所 System.Windows.Forms.Control.set_Visible(Boolean value)
場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
場所 System.Windows.Forms.Application.Run(Form mainForm)
場所 WindowsFormsApplication1.Program.Main() 場所 C:\Documents and Settings
[[中略]]
Program.cs:行 16
場所 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
場所 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
場所 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
場所 System.Threading.ThreadHelper.ThreadStart()

コーディングしたメソッドが見当たらないので、ちょっと読めませんでした。
引き続きお願いいたします。
引用返信 編集キー/
■68743 / inTopicNo.4)  Re[3]: ハンドルされていないバグ
□投稿者/ のぶ (40回)-(2013/11/11(Mon) 11:54:09)
#回答ではありません。
スタックトレース内に個人名らしきものが載っていますが問題ありませんでしょうか?
一応、消しておいた方が良いかと思われます。
引用返信 編集キー/
■68748 / inTopicNo.5)  Re[4]: ハンドルされていないバグ
□投稿者/ 白鴉 (4回)-(2013/11/11(Mon) 14:10:47)
2013/11/11(Mon) 14:11:02 編集(投稿者)

No68743 (のぶ さん) に返信
> #回答ではありません。
> スタックトレース内に個人名らしきものが載っていますが問題ありませんでしょうか?
> 一応、消しておいた方が良いかと思われます。
ありがとうございました。消しておきます。


自己解決しました。
具体的に何があったかというとコンストラクタ定義のところで
CommonBindings→CommonBindinds
Export    →Exeport
などの誤字がありました。初期設定されている関数とコンフリクトしたようです。しょうもな・・・


ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -