簡體   English   中英

從 SQL Server 事務中拋出異常

[英]Throwing an exception from SQL Server transaction

.NET 應用程序連接到 SQL Server 數據庫。 交易查詢存儲在 C# 代碼中的字符串中:

query = "BEGIN TRANSACTION Trans " +
        "    BEGIN TRY " +
        "    --transaction code goes here (don't worry, it is all parameterised) " +
        "    END TRY " +
        "    BEGIN CATCH " +
        "        ROLLBACK TRANSACTION Trans " +
        "        THROW; " +
        "    END CATCH " +
        "END TRANSACTION Trans ";

該查詢執行如下:

try
{
    using (SqlConnection conn = new SqlConnection(Configuration.connectionString))
    {
       SqlCommand cmd = new SqlCommand(query,conn);
       conn.Open();
       cmd.ExecuteNonQuery();
    }
}
catch (Exception ex)
{
    // By the way, I know it is bad practice to catch a System.Exception.
}

如果查詢本身發生異常,並且我如上拋出異常,它會被 C# 代碼中的 try-catch 塊捕獲嗎?

正如你提到的,如果你扔它,那么它會被 catch 抓住

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM