我正在编程高中课程,我的任务是编写一个使用以下程序的程序: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编写一个也可以工作的方法会更容易,我只是想我会展示我尝试过的东西,谢谢!
答案 0 :(得分: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的值,因此您可以在Try / Catch中包含B的声明。我故意把它放在外面,这通常是你想要在严肃的应用程序中做的事情。你通常会有某个状态的对象,试图改变它的状态。如果您的代码失败,您可以显示该对象的当前状态,并通知该尝试的操作未能执行。将其视为最佳实践建议。