【发布时间】:2016-06-03 05:28:40
【问题描述】:
除以零是 CPU 级别不允许的操作。在 ASM 中编写除以零的程序将导致 CPU 上的陷阱由除法溢出中断线执行到 OS。我的问题是异常是源自 CPU 还是框架本身在其运算符中处理它?
【问题讨论】:
-
我想你可以检查一下。在 CPU 中,每个事件都有处理。 stackoverflow.com/questions/23878400/…
-
我认为没有一个简单直接的答案。每个运行时(例如 x86、x64、ARM)都必须实现正确的语义,但是通过让硬件陷入陷阱还是通过显式检查减慢每个除法运算更容易实现它们,可能需要权衡取舍。
-
这是关于整数除法,还是例如与
Decimal或BigInteger的除法?它可以有所作为。请注意,Single和Double的除法通常不会引发 CLR 异常。相反,您可以得到正无穷或负无穷,或非数字作为商。
标签: .net exception divide-by-zero