0

例外をスローするための単なるヘルパーである 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 が初期化されていないことです。

4

3 に答える 3

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

つまり、ヘルパー関数は引き続き何らかの処理を実行できます。ただし、スローする代わりに例外を返します。

于 2012-09-07T08:04:12.550 に答える
1

このようなデフォルト値でxを初期化してみてください。ブール値は値型であり、null値で初期化しないでください。

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 
于 2012-09-07T08:19:39.323 に答える
0

次のコードを使用してみてください (Function の代わりに Sub を使用してください)。

Sub Foo(y As Integer)
    Dim x As Boolean
    If y > 10 Then
        x = 20
    Else
        ThrowHelperFunction("Ouch")
    End If
End Sub

ありがとう。

于 2012-09-07T08:17:28.147 に答える