【发布时间】:2014-06-10 04:35:30
【问题描述】:
这是我目前的代码:
Module Module1
Sub Main()
Dim A, B, C, D As Integer
Do
Try
System.Console.WriteLine("How high is the cube?")
A = Int32.Parse(Console.ReadLine())
Catch leg As System.FormatException
System.Console.WriteLine(leg.Message)
Finally
End Try
Loop Until A =
System.Console.WriteLine("How wide is the cube?")
B = Int32.Parse(Console.ReadLine())
System.Console.WriteLine("How long is the cube?")
C = Int32.Parse(Console.ReadLine())
D = A * B * C
Console.WriteLine(D)
System.Console.ReadKey()
End Sub
End Module
我希望第一个 try 块循环直到 A 是一个整数,以防用户输入字母而不是数字。有谁知道我该怎么做?
【问题讨论】:
-
使用 Try...Catch 作为程序控制是一个可怕的想法。在那里放一个 if 或一段时间。与使用 while 循环或 if/then/else 进行测试的正确设计的代码块相比,抛出和处理异常需要更多的执行时间。
-
这是我正在学习并提交给讲师的编程课程。我需要将 Try catch 循环作为作业的一部分。
-
您没有正确使用 try/catch。 Try catch 不应该用于程序控制。它应该用于捕获和处理意外错误。您在此处捕获的错误是预期错误,应使用适当的编程结构进行处理;如果/同时/等。如果使用 Try/Catch 是分配的一部分,请正确使用它来捕获函数的错误。
-
在此特定程序中用户输入不会导致太多错误。找到立方体的体积是他们让我做的程序之一。唯一可能发生的错误是用户输入了除整数以外的任何内容,还是我遗漏了什么?
-
对于作业,您的教授似乎试图让您使用 try/catch 来控制程序流程,但是您应该知道,对于您未来的编程生活,使用 try/catch 作为程序控制是不好。不要在现实世界中这样做。
标签: vb.net loops input integer console-application