问题标签 [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 投票
4 回答
3052 浏览

c# - 如何停止在整数除法上抛出 OverflowException?

当我不想要它们时(或者我认为),我正在向我抛出OverflowException 。我正在执行一些奇怪的计算,我希望这些值会溢出,丢弃溢出的位。看来我无法让它正常工作。基本上这是一对 i 和 j,当我迭代巨大的集合(int.MinValue 到 int.MaxValue)时会发生这种情况。

更新:

-2147483648 / -1 的预期数学值是 2147483648。但是,这个特定的代码并没有真正尝试找到数字。这是一系列难以理解的位操作的一部分。老实说,我什至不知道自己的意图是什么,因为我并没有真正记录该方法,并且只需要一天时间就可以在我的头上引发严重的 WTF 泡沫。据我所知,它使用旨在处理此案的特殊代码按预期工作。

关于期望值:

由于 int 只能保持 2147483647 的最大值,我希望丢弃产生值 0 的溢出。

如果我对此有所了解,那可能是文​​档对于晦涩的方法的重要性。

0 投票
1 回答
165 浏览

vb6 - error ";overflow6" when running a VB6 application on Windows 2003 Server

I am running a VB6 application on Windows 2003 Server. When I am running it, it is giving ;overflow6 error.

Can any one tell me why is so?

0 投票
2 回答
21658 浏览

c# - Oracle 数字转 C# 十进制

我知道互联网上有几个关于这个问题的主题和帖子,我已经阅读了它们(不是每一篇文章,我不得不承认)但没有一个能让我完全满意。

我的情况:
我使用 ODP.net(dll 版本 2.111.6.0)来访问 Oracle DB(版本 10 + 11)和 DataReader 来检索数据(.NET 3.5,C#)。

使用此代码会导致“ System.OverflowException(算术运算导致溢出。)

这个结果的值为' 3,00000000000000000000000000000000000000000000000000000000000E-126 '

现在我必须找到一些方法来正确检索和评估这个值——数据库也被其他不受我控制的应用程序使用,因此不可能进行更改。

将我的 C# 代码中的类型从“十进制”转换为“双精度”也不是一个真正的选择。

有任何想法吗?

0 投票
1 回答
217 浏览

c# - C# - 什么可能导致溢出检查?

正如语言规范所述(第 7.5.12 节),我习惯于 C# 不执行溢出检查:

对于未被任何已检查或未检查的运算符或语句包围的非常量表达式(在运行时计算的表达式),默认溢出检查上下文是未检查的,除非外部因素(例如编译器切换和执行环境配置)需要检查评估。

在低级代码中进行数组边界检查时,我利用了这一点:

如果 index 为负数,我希望它变成一个很大的正数,从而超过 TotalCount。然而,令我惊讶的是,负数会产生 OverflowException,我必须将表达式包装在 unchecked() 中。我查看了 Visual Studio 中的项目选项,但没有看到启用或禁用溢出检查的选项。那么为什么它会在这里呢?

0 投票
4 回答
5836 浏览

vb.net - VB.NET 中的 CInt(Long) 在 32 位和 64 位环境中的行为不同

今天我在将 Long (Int64) 转换为 Integer (Int32) 时遇到问题。问题是我的代码总是在 32 位环境中工作,但是当我在 64 位计算机上尝试相同的可执行文件时,它会因 System.OverflowException 异常而崩溃。

我在 Visual Studio 2008 中使用默认设置在一个新项目中准备了这个测试代码:

在我的 32 位设置(Windows XP SP3 32 位和 Windows 7 32 位)上,它打印到“CINT OK”,但在我测试过的 64 位计算机(Windows 7 64 位)中相同可执行它只打印异常名称。

这种行为是否记录在案?我试图找到一个参考,但我失败了。

作为参考,我也留下了CIL代码:

我怀疑行为不同的指令是 conv.ovf.i4 或 ldc.i4.m1/conv.u8 对。

到底是怎么回事?

Convert.ToInt32(long)在两种环境中都失败。只有 CInt(Long) 表现不同。

0 投票
2 回答
401 浏览

c# - 当 SQLPlus 一切正常时,为什么这会在 C# 中导致 ArithmeticException

我有一个连接 4 个表的视图

有一个小日期算术正在进行,可以找到一本书迟到了多少天

当我做 aSELECT * FROM BookCopyInfo时,我得到像

所以它是正确的,-13 实际上是正确的答案。

DESC BookCopyInfo返回

然而在 C#

在 da.Fill 行中捕获异常

用户代码未处理 OverflowException。
算术运算导致溢出。

为什么它在 SQLPlus 中运行良好但在 C# 中失败?:S

0 投票
3 回答
1721 浏览

c# - 引发负数组大小的 OverflowException 背后的基本原理?

编写代码后,可以归结为以下内容:

我很惊讶它抛出了一个OverflowExceptionOverflowException状态的文档:

当检查上下文中的算术、强制转换或转换操作导致溢出时引发的异常。

我看不出如何为这个异常提供负大小和数组长度,因此深入研究了一下,发现这确实是指定的行为:

尺寸长度的计算值验证如下。如果一个或多个值小于零,则抛出 System.OverflowException 并且不执行进一步的步骤。

我想知道为什么选择了 OverflowException。如果你问我,这很容易产生误导。这花了我至少 5 分钟的调查时间(这里不算我的沉思)。任何人都可以阐明这个(在我看来)特殊的设计决定吗?

0 投票
2 回答
925 浏览

c# - 减去两个 System.Runtime.InteropServices.ComTypes.FILETIME 对象的最安全方法是什么

我想知道减去两个System.Runtime.InteropServices.ComTypes.FILETIME对象最安全的方法是什么?我使用了以下代码,但有时由于低 32 位值中的负数,它给了我 ArithmaticOverflow 异常。我不确定将身体封闭起来unchecked是否可以达到目的。请给我一些建议,告诉我如何在不收到任何运行时异常或 CS0675 警告消息的情况下安全地进行操作。

0 投票
8 回答
156509 浏览

c# - 算术运算导致溢出。(添加整数)

我无法理解这个错误:

在此对方法 SetVolume 的调用中,Volume = 2055786000 和size = 93552000。如您所见,Volume 是一个 Integer 属性,并且 size 也是 Integer。

该类是 dbml 实体类的部分类,但是此 Volume 属性不是数据库中的列,它仅作为“业务对象属性”存在于部分类中。

查看详情显示:

Data > Item:为了评估索引属性,必须限定属性并且参数必须由用户显式提供。

替代文字

这可能是什么原因……?

0 投票
3 回答
3922 浏览

c# - 指数 0 值的十进制解析 (0+E3)

我们的中间层向我们发送序列化的对象,有时由于服务器上 Java 中的一些数学运算,发送一个 0,作为 0E+3。反序列化对象时,我们得到 XmlException --> System.OverflowException,因为该值对于小数来说太大或太小。

为什么 decimal.Parse 不能处理这种转换?

有没有办法保护我们的客户免受以这种方式传入的这些数字?