1

stopステートメントで停止しないように見えるVBコードを維持しています。

特定の条件下でプログラムを実行すると、このコードはコードの最後の行からSystem.Exception( "Timed out")をスローします。

しかし、コードを1行ずつ実行すると、このステートメントにヒットすることはないようです。まず、MyBase.Saveを返そうとします。できない場合は、stopステートメントにヒットして停止します。

しかし、プログラムは停止ステートメントをスキップしているようです。

このコードをデバッグするにはどうすればよいですか?具体的には、stopステートメントをスキップしてステートメントThrow New System.Exception( "Timed out")に到達するにはどうすればよいですか。

Public Overrides Function Save() As Uber

    If IsDeleted AndAlso Not CanDeleteObject() Then
        Throw New System.Security.SecurityException("User is not authorized to remove a Uber")
    ElseIf IsNew AndAlso Not CanAddObject() Then
        Throw New System.Security.SecurityException("User is not authorized to add a Uber")
    ElseIf Not IsNew AndAlso Not CanEditObject() Then
        Throw New System.Security.SecurityException("User is not authorized to update a Uber")
    End If

    Try
        Return MyBase.Save
    Catch ex As Exception

        Stop   //why is the code not stopping here?
    End Try

    Throw New System.Exception("Timed out")  //this line executes, but I don't see how the code gets there

End Function
4

1 に答える 1

5

Stopはデバッグ用のブレークポイントを作成するだけだと思います。

コードの実行は続行されます。

ReturnMyBase.Saveで例外がスローされていると思います。それはCatchブロックに捕らえられていますが、exが使用されることはないため、そのブロックによって事実上無視されています。

于 2012-07-12T15:38:36.627 に答える