は、ここで「uspTest」SQL ServerのRAISERRORからC#でエラーをキャッチする方法はありますか?
BEGIN TRY
SELECT 3/0;
END TRY
BEGIN CATCH
RAISERROR('D', 16, 3);
END CATCH
と呼ばれる私のストアドプロシージャのコードであり、ここで、私はこのコードを実行すると
public IHttpActionResult RegisterUser(RegisterModelView registerViewModel)
{
try
{
using (AusHerbEntities ctx = new AusHerbEntities())
{
ctx.uspTest();
Console.Write("i am in try block");
}
}
catch (Exception e)
{
Console.Write(e.Message);
}
return Ok();
}
、C#コードでCatchブロックが呼び出されていないVisual Studioでの私のC#のコードですストアドプロシージャでエラーが発生するため、呼び出されることが期待されます。
このコードはどのように動作させることができますか?
私は、ストアドプロシージャのcatchブロックでRAISERRORを行い、C#コードでエラーをキャッチしたいだけです。
あなたのコードは、あなたが考えるべきことをしているようです。何が起こるかを見るためにブレークポイントを入れましたか? –
私も確認できますが、sqlの構文が正しいと考えています。あなたはこの質問をチェックすることができます私はこれがあなたの問題の場合は気づいていない:http://stackoverflow.com/questions/33502318/sqlexception-not-caught-in-winforms – mybirthname
私はもう一度試みたが、それは動作しません、トレッドストアドプロシージャを実行するために0が期限切れになりました。これは例外がスローされないことを意味しますか? –