2011-04-26 48 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