好的,这是我的老师要求我做的。编写一个基本程序,使用其中一个算术例外(除了将数字除以0)为本课程中所见的程序建模。然后,在第二个程序中,编写一个不会产生错误的程序。这是一个VB.NET算术异常吗?
本课的内容是DivideByZeroException,NotFiniteNumberException和OverflowException。
编辑:我不能使用DivideByZeroException。
我是初学者,所以对编程知之甚少。我正在上高中班,所以请耐心等待。
好的,这是我的老师要求我做的。编写一个基本程序,使用其中一个算术例外(除了将数字除以0)为本课程中所见的程序建模。然后,在第二个程序中,编写一个不会产生错误的程序。这是一个VB.NET算术异常吗?
本课的内容是DivideByZeroException,NotFiniteNumberException和OverflowException。
编辑:我不能使用DivideByZeroException。
我是初学者,所以对编程知之甚少。我正在上高中班,所以请耐心等待。
巴拉的回答很接近:
Dim j As Integer = Integer.MaxValue + 1 '<-- doesn't compile
这的确会溢出,但它不会编译,因为编译器检测到我们”重新尝试分配一个不适合整数的值。
如果我们传递一个变量给它,那么编译器不会对该变量的值做任何假设,因此代码将被编译。它将在运行时失败,并显示OverflowException
。
Dim i As Integer = Integer.MaxValue
Dim j As Integer = i + 1 '<-- OverflowException at runtime
我建议你阅读的文档上ArithmeticException
这里:
http://msdn.microsoft.com/en-us/library/system.arithmeticexception.aspx
有3子类ArithmeticException的,你可以在上面的链接阅读。
DivideByZeroException
NotFiniteNumberException
OverflowException
以产生的最简单的一种是DivideByZeroException - 只是除以零的int。这可能是一个很好的尝试。对于其他人,请阅读导致他们的原因并尝试创建与描述相匹配的场景。
AFAIK ** NotFiniteNumberException **将不会在C#中发生,我相信同样适用于vb.net – V4Vendetta 2011-04-26 05:06:33
尝试
Dim j As Integer = Integer.MaxValue + 1
,这将导致OverflowException
嘿,这甚至编译?我不这么认为 – V4Vendetta 2011-04-26 04:56:50
不能编译,但是很容易愚弄编译器:“Dim i As Integer = Integer.MaxValue”,然后“Dim j As Integer = i + 1” – 2011-04-26 12:10:53
@ Meta-Knight你能否请张贴作为答案,所以我可以选择它作为最佳答案? – 2011-04-26 17:33:09
算术例外:1/0 – 2011-04-26 03:33:26
我不能使用DivideByZeroException。如果那是你所指的。 – 2011-04-26 03:39:04
你想创建一个异常,或者只是试图写一些代码而没有抛出异常? – 2011-04-26 03:49:07