2011-12-19 15 views
0
マイエラーメッセージがヘッダーに表示されているよう

「入力文字列が正しい形式ではありませんでした」しかし、スタックトレースはさらに不可解入力文字列の形式が正しくありませんでしたか? PRODエラー

Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat) at Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat)

ですこれは、どこで実際に悪化していますプロジェクトは "ParseDouble"を使用します。私はこれがobjectfactorylibraryと何か関係があると信じていますが、何かを落とすことはできません。

誰かが似たようなものを見たり、一般的な方向に向いていますか?

編集: 追加情報、これはローカル版、開発者版、およびQA版の生産上の問題で、Production版以外の環境ではエラーを再現できません。

答えて

2

スタックトレースは、ParseDoubleと呼ばれる.NET Frameworkコード内のメソッドを参照しています。あなたのコードには存在しません。このため、名前空間全体が含まれているため、メソッドが定義されている場所を知ることができます。 MicrosoftまたはSystemで始まる場合は、あなたが書いたものではありません。

あなたは、おそらく(それは初心者への関数呼び出しのように見えるということだ)CDbl演算子を使用し、内部的に、.NET Frameworkは、内部Conversions.ParseDoubleメソッドを呼び出しConversions.ToDoubleメソッドの呼び出しにそれを翻訳しました。これらの実装の詳細は、あなたが気にするべきではありません。最後に呼び出されるメソッドが見つかるまでスタックトレースを続けてください。そのメソッドの一部はコードの一部です。

あなたのコードがそのエラーを投げている限り、それを再現するコードを見ずに言うことはほとんど不可能です。

私の精神的なデバッグ能力は、文字列値を数値に解析しようとしている可能性があり、文字列に有効な数値が含まれていないため失敗しています。メソッドに渡す文字列の値をチェックし、質問を更新します。おそらくあなたのコンピュータの言語設定の問題です。 .(ピリオド)ではなく、,(カンマ)が小数点区切り文字である言語を使用していますか?

+0

- またはテキストボックスが空白のままで、コード内の数字にキャストしようとしました。 – bgs264

+0

私は精巧にすべきだと思いますが、私はそのように編集しますが、これは具体的にはローカル、開発者、QAの生産上の問題です。これは私がコードではないと信じるように導くが、そこから行く場所はない。 – user1106256

+1

@user:いいえ、それは責任を負う(したがって修正可能な)コードです。可能性のある説明は私が提示したものです:失敗しているシステムは、テストシステムとは異なる入力ロケールを使用しています。あなたが*呼んでいるコードを投稿し、誰かがあなたにそれを修正する方法を教えることができます。解決策は、変換メソッドに 'CultureInfo.InvariantCulture'を指定することになります。しかし、 'CDbl'以外の*変換メソッドを呼び出す必要があるかもしれません。 –

0

文字列を数値に変換しようとしましたが、文字列が数値でない(アルファまたは他の文字を含む可能性があります)ことはできませんでした。

スタックトレースは、あなたが行番号があることを幸運に思うなら、問題のあるコードの方に向けるべきです。これが通常動作するコードの場合は、そのデータを見てください(それが何であれ)。

関連する問題