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时,它直接通过,没有例外。
任何人都能解释一下吗?