MSSQL和LinqToSql:在存储过程中除以零异常,直到下一次C#调用才抛出

时间:2018-06-08 09:32:51

标签: sql-server exception stored-procedures linq-to-sql divide-by-zero

MSSQL Server 2016开发人员版,MSVS 2015专业版。

我有一个存储过程,有时会产生除零异常:

CREATE PROCEDURE dbo.SometimesException @i int
AS    
BEGIN  
  IF (@i % 3 = 0)
  BEGIN
    SELECT 1/0;
  END
END

调用C#代码是:

DALDataContext context = new DALDataContext( "Data Source =.\\SQL2016 ; Database = Dawn; Integrated Security = true;" );

for (int i = 1; i < 6; i++)
{
  try
  {
    context.SometimesException( i );
  }
  catch (Exception e)
  {
   int br = 0;  // only reached when i == 4!
  }
}

但只有i == 4时才会输入catch子句(异常消息中除以零的异常)!当i == 3时,它直接通过,没有例外。

任何人都能解释一下吗?

0 个答案:

没有答案