2011-04-26 55 views
1

好的,这是我的老师要求我做的。编写一个基本程序,使用其中一个算术例外(除了将数字除以0)为本课程中所见的程序建模。然后,在第二个程序中,编写一个不会产生错误的程序。这是一个VB.NET算术异常吗?

本课的内容是DivideByZeroException,NotFiniteNumberException和OverflowException。

编辑:我不能使用DivideByZeroException。

我是初学者,所以对编程知之甚少。我正在上高中班,所以请耐心等待。

+0

算术例外:1/0 – 2011-04-26 03:33:26

+0

我不能使用DivideByZeroException。如果那是你所指的。 – 2011-04-26 03:39:04

+0

你想创建一个异常,或者只是试图写一些代码而没有抛出异常? – 2011-04-26 03:49:07

回答

1

巴拉的回答很接近:

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 
1

我建议你阅读的文档上ArithmeticException这里:

http://msdn.microsoft.com/en-us/library/system.arithmeticexception.aspx

有3子类ArithmeticException的,你可以在上面的链接阅读。

  • DivideByZeroException
  • NotFiniteNumberException
  • OverflowException

以产生的最简单的一种是DivideByZeroException - 只是除以零的int。这可能是一个很好的尝试。对于其他人,请阅读导致他们的原因并尝试创建与描述相匹配的场景。

+0

AFAIK ** NotFiniteNumberException **将不会在C#中发生,我相信同样适用于vb.net – V4Vendetta 2011-04-26 05:06:33

0

尝试

Dim j As Integer = Integer.MaxValue + 1 

,这将导致OverflowException

+0

嘿,这甚至编译?我不这么认为 – V4Vendetta 2011-04-26 04:56:50

+0

不能编译,但是很容易愚弄编译器:“Dim i As Integer = Integer.MaxValue”,然后“Dim j As Integer = i + 1” – 2011-04-26 12:10:53

+0

@ Meta-Knight你能否请张贴作为答案,所以我可以选择它作为最佳答案? – 2011-04-26 17:33:09