问题标签 [overflowexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
462 浏览

c# - 内存不足和溢出异常创建小数组

我是 C# 和 XNA 的新手。刚刚设法编写了一个生成三角形网格的类。但是有一个问题。我可以获得最大 27 个节点长度的三角形。在 28 它抛出 Out of memory 异常和在 31 -overFlow 异常。

我不明白它是如何溢出或内存不足的......试图计算所有这些内存值,但它们看起来非常小。

它只是受变量影响的节点数组。节点类不是很大:

浮动 x; 4 B 浮动 y;4 B 浮动 z;4 B int[] con; int[6] 4*6=24 B 字节传递;1 B 颜色 col; 32 乙 = 4 乙

创建三角形所需的节点序列和为 n(n+1)/2

28岁内存不足

28*29/2=406 个节点

总内存:

41*406 = 16646 B = 16.26 kB

31 时溢出:496 个节点为 19.9 kB

我确实读过关于“内存不足异常”的文章,结构大小比看起来要大,内存不足发生在 500MB 的大小......我的小三角形不可能达到如此巨大的大小。

这是我的全班:

0 投票
1 回答
2232 浏览

c# - 算术运算导致溢出错误 c#

您好,我正在使用 c# 构建一个应用程序以连接到远程 mysql 服务器。

这是代码:

它显示以下错误:

“溢出异常未处理

算术运算导致溢出"

我在这里没有使用任何算术运算。有什么帮助吗???

0 投票
11 回答
12773 浏览

.net - 如何在没有OverflowException的情况下将无符号整数转换为有符号整数

我希望能够将高值无符号整数(使用最高位的值)转换为有符号整数。在这种情况下,我不在乎该值是否高于有符号整数类型的最大值。我只是希望它转换为任何位值表示为有符号整数。换句话说,我希望它会产生一个负数。

但是,对于 VB.NET,该CType操作不能以这种方式工作(或任何其他转换函数,如CShortand CInteger)。当您尝试转换高于所需有符号类型最大值的无符号值时,它会抛出一个OverflowException而不是返回一个负数。例如:

同样值得一提的是,该DirectCast操作不能用于在有符号和无符号类型之间转换值,因为这两种类型都不继承或实现另一个。例如:

我已经想出了一种方法来做我想做的事,但这似乎不必要地难看。这是我如何让它工作的:

就像我说的那样,这行得通,但是如果在 VB.NET 中有更简单、更清洁的方法,我很想知道它是什么。

0 投票
1 回答
536 浏览

c# - 数组创建表达式和长维度长度

我只是在阅读 C# 规范和数组创建表达式的部分。在规范中它说:

[剪辑]

表达式列表的维度长度表达式按从左到右的顺序计算。在评估每个表达式之后,将执行到以下类型之一的隐式转换(第 6.1 节):int、uint、long、ulong。选择此列表中存在隐式转换的第一个类型。如果对表达式的求值或随后的隐式转换导致异常,则不会再求值表达式,也不会执行进一步的步骤。

兴奋,我想嗯我还没有看到,让我们尝试一个长尺寸长度:

Visual Studio 指着第一行说:

未处理的异常:System.OverflowException:算术运算导致溢出。

请注意,这不是“OutOfMemoryException”。如果我更改我的数组创建表达式并使其更小:

这次我得到一个“OutOfMemoryException”。我知道 CLR 的整个“没有对象可以大于 2GB”的限制。我的问题是当长度不再可转换为 Int32 时,为什么我会得到一个非常不同的异常(OverflowException 与 OutOfMemoryException)?

0 投票
3 回答
3376 浏览

c# - 我应该能够位移>>一个字节数组吗?

我试图理解为什么 BigInteger 会引发溢出异常。我试图通过将 BigInteger 转换为 abyte[]并迭代地增加 shift 来可视化这一点,直到我看到异常发生的位置。

  • 我应该能够位移>>一个字节[],还是C#根本不能?

导致异常的代码

0 投票
2 回答
3283 浏览

c# - 确定整数溢出是否超过或低于界限

使用C#,我有一些自定义类,我需要能够检测整数溢出并返回默认的最小值或最大值,具体取决于溢出是由于结果超过最大值还是低于最小值。我似乎找不到关于如何检测任何地方发生的溢出“类型”的建议。

这些类分为两种一般类型:使用有符号值的类和使用无符号值的类。

例如,这是处理 Int32 值的类之一:

如您所见,该类的思想是保存一个基值、一个调整值和一个乘数值,并在 Value 属性中返回聚合值。(正如它所暗示的,TruncValue 属性只是返回截断的整个值,删除任何小数值)。

目标是处理 Value 属性的“get”访问器中的溢出,如果结果超过最大 int 值,则返回 int.MaxValue,如果低于最小值,则返回 int.MinValue,所有这些都不会抛出实际溢出错误。让我感到棘手的部分是调整值和乘数也可能是负值(根据设计要求)。

实现这一目标的安全方法是什么?我还没有找到任何资源来解决这种情况。我猜需要使用某种算术算法来确定结果是否超过或低于。

0 投票
1 回答
43 浏览

class - 一个 OverFlowException 的 Contract.Ensures

我有一个简单的方法,它返回给定数字的指数值:

运行 Pex 时,我在 Summary/Exception 字段中得到一个 OverFlowException,用于某个大数字:1969057606。

如何使用创建后置条件Contract.Ensure()?我尝试了以下但它没有做任何事情:

0 投票
2 回答
9295 浏览

c# - 微软图表控件——失败后重绘图表(红叉)

我有一个treeView element每个节点都代表一个双重列表的地方。

我正在使用DataVisualization.Charting控件来显示list.

对于某些列表,我在RecalculateAxesScale (System.OverflowException: Value was either too large or too small for a Decimal). 忽略此错误后出现异常,因此图表显示一个大红叉。

当我现在单击另一个节点时,我想显示这个双重列表的图表(这是有效的),但我的图表没有重绘。它始终显示红色 X。

我的代码:

[编辑]

dblList 类型:

完整的异常堆栈:

[编辑 2]

示例列表:

最后一个值产生问题(红十字无一例外)。所以看起来转换列表的最小值和最大值是不合适的。有什么想法吗?

0 投票
2 回答
552 浏览

c# - 为什么编译器评估的余数 MinValue % -1 与运行时不同?

我认为这看起来像是 C# 编译器中的一个错误。

考虑这段代码(在方法内):

它编译时没有错误(或警告)。似乎是一个错误。0运行时,在控制台上打印。

然后没有const,代码:

当它运行时,它会正确地导致OverflowException被抛出。

C# 语言规范特别提到了这种情况,并说 aSystem.OverflowException应该被抛出。它不依赖于上下文checkedunchecked看起来(编译时常量操作数对余数运算符的错误与checkedand相同unchecked)。

int( )会发生同样的错误System.Int32,而不仅仅是long( System.Int64)。

相比之下,编译器dividend / divisorconst操作数的处理比dividend % divisor.

我的问题:

我是对的,这是一个错误吗?如果是,这是他们不希望修复的众所周知的错误(因为向后兼容性,即使% -1与编译时常量一起使用是相当愚蠢的-1)?或者我们应该报告它,以便他们可以在即将发布的 C# 编译器版本中修复它?

0 投票
1 回答
1140 浏览

c# - 序列化中的 System.OverflowException

我有一些用于解析 Web 响应的类:

我使用DataContractJsonSerializer

"System.OverflowException"排队:

/checked 编译器选项已关闭。并且ReadObject不能抛出这个异常。

但是,如果我重写这些类,那么它就可以工作:

我知道这是一个模糊的问题,但无法理解可能是什么问题。什么时候可以抛出这个异常?

更新异常信息:

信息:

内部异常:

追踪追踪:

json响应: