2014-10-20 40 views
2

我在編程高中課程,我的任務是編寫一個程序,使用:OverflowException或NotFiniteNumberException。它必須是算術的,我試過所有我能想到的,但我似乎無法讓它正確打印,所以我假設問題與我的代碼。這是我試過的一件事:算術例外

模塊模塊1

Sub Main() 
    Dim A As Integer = Integer.MaxValue 
    Dim B As Integer = A + 1 
    Try 
     Console.WriteLine("The answer is: ", B) 
     Console.ReadLine() 
    Catch C As OverflowException 
     Console.WriteLine("B is greater than the maximum value ") 
     Console.ReadLine() 
    End Try 
End Sub 

前端模塊

當我做到這一點,確實給出錯誤信息,但它說:「未處理的異常「,而不是」B大於最大值「。顯然,我不知道爲什麼會這樣做,所以任何信息都會有很大的幫助。如果建議一種用NotFiniteNumberException編寫的方法可能更容易,那麼我也會認爲我會顯示我嘗試過的,謝謝!

回答

1

這兩條線不能拋出任何異常:

Console.WriteLine("The answer is: ", B) 
Console.ReadLine() 

這條線,但是,可以:

Dim B As Integer = A + 1 

您應該包括try/catch塊,像這裏面後者:

Dim B As Integer 
Try 
    B = A + 1 
    Console.WriteLine("The answer is: ", B) 
    Console.ReadLine() 
Catch C As OverflowException 
    Console.WriteLine("B is greater than the maximum value ") 
    Console.ReadLine() 
End Try 

通知您沒有使用B的值,這樣你就可以包括declaratio有Try/Catch中的B的n個。我故意把它放在外面,這通常是你想要在嚴肅的應用中做的事情。你通常會在某個狀態下有一個對象,試圖改變它的狀態。如果您的代碼失敗,您可以顯示對象的當前狀態,並通知該嘗試的操作未能執行。將其視爲最佳實踐建議。