Vb.net 在vb中捕获帮助时出错
由于错误捕获方面的问题,我一直在尝试解决这个问题,但不确定为什么它不起作用 更新:我没有说太多细节,对此表示抱歉 在第六行,用户打算输入一个数字,但如果用户输入一个字母,程序就会崩溃。我通常使用double.tryparse,这非常有效,但由于某种原因,获取“错误1重载解析失败,因为没有可访问的“tryparse”接受此数量的参数”错误消息Vb.net 在vb中捕获帮助时出错,vb.net,error-handling,Vb.net,Error Handling,由于错误捕获方面的问题,我一直在尝试解决这个问题,但不确定为什么它不起作用 更新:我没有说太多细节,对此表示抱歉 在第六行,用户打算输入一个数字,但如果用户输入一个字母,程序就会崩溃。我通常使用double.tryparse,这非常有效,但由于某种原因,获取“错误1重载解析失败,因为没有可访问的“tryparse”接受此数量的参数”错误消息 Private Sub quadraticEquation() Dim a, b, c, d As Double Dim x1, x2,
Private Sub quadraticEquation()
Dim a, b, c, d As Double
Dim x1, x2, stra, strb, strc As String
Console.WriteLine("ax^2 + bx + c = 0")
Console.WriteLine("Please enter a")
stra = Console.ReadLine()
a = Double.Parse(stra)
If IsNumeric(stra) Then
Console.WriteLine("Please enter b")
strb = Console.ReadLine()
b = Double.Parse(strb)
Else
Console.WriteLine("Invalid input")
Call quadraticEquation()
End If
Console.WriteLine("Please enter c")
首先,您必须检查stra是否为数值,并且只有当其数值将其解析为double类型时,您才尝试将非数值值解析为double,这是不可能的,这就是引发异常的原因
If IsNumeric(stra) Then
a = Double.Parse(stra)
Console.WriteLine("Please enter b")
strb = Console.ReadLine()
b = Double.Parse(strb)
Else
Console.Write("Invalid input")
End If
错误是什么,在哪一行???您应该改用
Double.TryParse()
。如果可以将值解析为double,则返回True。如果在捕获错误时遇到问题,请在代码中添加一些错误处理和调试。对于此处的问题,您需要尝试提供尽可能多的信息以缩小问题范围。在您的代码中:在执行Double.Parse(stra)之后,没有测试IsNumeric(stra)的意义——解析应该在if中。如果有一个不好的输入,你不想再次调用二次方程子,那真的很复杂。最好将漏洞放在某种中,而或重复循环。很抱歉,我现在更新了我的帖子,我将对代码进行一些更改,看看会发生什么。如果您忘记在帖子中更新代码,则错误消息还不够。TryParse可以这样使用:如果Double.TryParse(stra,Nothing)=True,那么
如果解析成功,则返回True。