gpt4 book ai didi

c# - SqlException的构造函数在哪里?

转载 作者:行者123 更新时间:2023-12-02 08:37:38 24 4
gpt4 key购买 nike

我正在编写单元测试来验证对数据库过载引起的异常的检测。

但是我找不到 SqlException 的构造函数。为什么我在元数据中看不到构造函数?

以下代码只是为了帮助理解我为什么要寻找构造函数。

#region Is Timeout
[TestMethod]
public void TestTimeOutWin32ExceptionTimeOut()
{
Win32Exception ex = new Win32Exception("The wait operation timed out");
Assert.IsTrue(ExceptionHelper.IsDatabaseTimeOut(ex));
}

[TestMethod]
public void TestTimeOutSqlExceptionTimeOut()
{
SqlException ex = new SqlException("Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.");
Assert.IsTrue(ExceptionHelper.IsDatabaseTimeOut(ex));
}

[TestMethod]
public void TestTimeOutEntityCommandExecutionException()
{
SqlException innerException = new SqlException("Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.");
EntityCommandExecutionException ex = new EntityCommandExecutionException("anything", innerException);
Assert.IsTrue(ExceptionHelper.IsDatabaseTimeOut(ex));
}

#endregion

#region Is NOT Timeout
[TestMethod]
public void TestTimeOutWin32ExceptionEmpty()
{
Win32Exception ex = new Win32Exception("");
Assert.IsFalse(ExceptionHelper.IsDatabaseTimeOut(ex));
}

[TestMethod]
public void TestTimeOutArgumenException()
{
ArgumentException ex = new ArgumentException("invalid path");
Assert.IsFalse(ExceptionHelper.IsDatabaseTimeOut(ex));
}

[TestMethod]
public void TestTimeOutArgumenNullException()
{
ArgumentNullException ex = new ArgumentNullException("empty path");
Assert.IsFalse(ExceptionHelper.IsDatabaseTimeOut(ex));
}

[TestMethod]
public void TestTimeOutException()
{
Exception ex = new Exception("custom string");
Assert.IsFalse(ExceptionHelper.IsDatabaseTimeOut(ex));
}
#endregion

最佳答案

SqlException 使用内部工厂方法 ( CreateException ) 通过私有(private)构造函数在内部创建实例。没有允许您创建异常的公共(public)方法,可能是因为它特定于 SQL 数据提供程序并且不适合您创建自己的异常。

关于c# - SqlException的构造函数在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33859676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com