我在VB.NET中有一个方法,它只是投掷的帮手 例外。它将始终抛出异常而永不返回 但是,编译器不会将此函数检测为终止 代码路径,因此如果我使用,我会收到警告 稍后在代码中的变量,这些变量未通过异常代码路径初始化。
Function Foo(y as Integer) As Boolean
dim x as boolean
if y > 10
x = 20
else
ThrowHelperFunction("Ouch")
end if
return x
End Function
警告是x未在所有代码路径上初始化。
答案 0 :(得分:3)
我认为你不能改变这种行为。相反,你可以做类似的事情:
Function Foo(y as Integer) As Boolean
dim x as boolean
if y > 10
x = 20
else
throw CreateExceptionHelperFunction("Ouch")
end if
return x
End Function
也就是说,辅助函数仍然可以进行一些处理。但它会返回异常而不是抛出它。
答案 1 :(得分:1)
尝试使用像这样的默认值初始化x。布尔值是值类型,不应该使用空值初始化。
Function Foo(y as Integer) As Boolean
dim x as boolean
x = 0
if y > 10
x = 20
else
throw CreateExceptionHelperFunction("Ouch")
end if
return x
End Function
答案 2 :(得分:0)
尝试使用以下代码(使用Sub而不是Function)
Sub Foo(y As Integer)
Dim x As Boolean
If y > 10 Then
x = 20
Else
ThrowHelperFunction("Ouch")
End If
End Sub
感谢。