我有一些变量从客户端传递到服务器。其中一个变量应该作为双精度接收,但有时我们会从引发异常的客户端获得一些字符串或空变量。
我的问题是,从性能方面来看,将变量包装在 try、catch 中并在失败时应用默认值是否更好:
Dim expectDouble As Double
Try
expectDouble = Request.Form("pastFromClient")
Catch ex As Exception
expectDouble = 0 'Default to zero
End Try
或者最初将所有传入变量视为字符串对象并针对正则表达式运行它们?
Dim expectDouble As Double
If Regex.IsMatch(Request.Form("pastFromClient").toString, "^\d{1,}\.{0,1}\d{0,4}$") Then
expectDouble = Request.Form("pastFromClient")
Else
expectDouble = 0 'Default to zero
End If
后一个选项可能看起来有点晦涩,但我一直对到处都有 try, catch 语句感到不安。