c# - Double ParseDouble - 输入字符串的格式不正确 - 如何修复?

标签 c# asp.net vb.net string

我每天都会收到大约 3-4 次同样的错误,并且一直没有找到解决此问题的方法。根据堆栈跟踪,错误发生在 Microsoft.VisualBasic 库中,那么我该如何解决这个问题呢?

这是我发送给自己的报告以及服务器生成的报告。任何建议将不胜感激。

REQUEST
=======
HttpContext.Current.Request.RawUrl: /
UserHostAddress: 207.70.41.78
UserHostName: 207.70.41.78
Request.Browser.Type: IE8
Request.Browser.Platform: Win2000


DATA
====
System.Collections.ListDictionaryInternal


MESSAGE
=======
Input string was not in a correct format.

SOURCE
=====
Microsoft.VisualBasic

TARGET SITE
===========
Double ParseDouble(System.String, System.Globalization.NumberFormatInfo)

STACK TRACE
============
   at Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat)
   at Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value)

更新:

我了解错误是什么以及导致错误发生的原因。我遇到的问题是找出代码中此错误的确切来源。堆栈跟踪告诉我它来自 Visual Basic,但没有别的。没有行号,也没有关于是什么函数导致了这个错误发生的其他信息,没有任何事情可以继续下去,所以我只能抓耳挠腮地试图诊断一些东西,它看起来可能被包裹在一个 .dll 中。

如果对主题有所了解,我们正在运行 Ektron 7.6.6 sp2。

有没有办法获得更可靠的堆栈跟踪?我检查了服务器上的事件查看器,我之前发布的信息就是事件查看器中显示的所有信息。这没有任何帮助。

感谢您对我的问题的所有回答。

最佳答案

此错误意味着正在执行类似这样的代码 Double.ParseDouble("bacon")。培根很好吃,但不是双重的。在代码周围放置一个 try/catch 以查看传递给 ParseDouble 的内容。这应该有助于确定导致问题的原因(可能不是培根),并且应该有助于确定问题的来源。用户是否在文本框中输入它?它来自数据库吗?从那里您可以将 ParseDouble 更改为 Double.TryParse .如果它是一个,这将让你得到 double,如果不是,则提供备用代码分支以在输入错误数据时执行(此时你可以返回错误,例如“嘿,吃那个培根,不要把它放进去那里”)。

关于c# - Double ParseDouble - 输入字符串的格式不正确 - 如何修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5276471/

相关文章:

javascript - CasperJS:如何填写 asp 表单

mysql - 复选框列表选择的项目未获得选择并在字符串中插入空白值

c# - 如何在 C# 中像 Visual Basic 一样使用 Lib

vb.net - 拖动时表单未置于最前面

c# - 在 CommentRangeStart 和 CommentRangeEnd 之间获取 OpenXmlElements

c# - 请求的操作需要提升

c# - 内联属性初始化和尾随逗号

c# - RIA 服务中的异常处理

asp.net - 异常日志记录 HttpModule 不会捕获来自 ASP .NET 页面方法的错误

asp.net - 使用配置更改默认的SqlCommand CommandTimeout而不是重新编译?