好的,這是我的老師要求我做的。編寫一個基本程序,使用其中一個算術例外(除了將數字除以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