在正常情况下没有问题,但是当数据库无法找到时,可视工作室会显示SQLExceptions
被抛出并被抓住。
我试图包装DbContext
的创建,但它永远不会陷入困境并继续陷入新的MyDbContext()
。
MyDbContext db = null;
try
{
db = new MyDbContext ();
myData = db.MyData.ToList (); // myData defined earlier
}
catch (System.Data.Entity.Core.EntityException ) // I tried to catch System.Exception with the same result
{
MessageBox.Show ("Can't connect to server.");
return;
}
finally
{
db?.Dispose ();
}
那么有什么方法可以捕获抛出的异常或者发现连接无法建立?
为了测试错误的连接,我将连接字符串Data Source
更改为Localhost1
之类的内容。
答案 0 :(得分:1)
所以在等待了很长时间并且看到内部抛出异常几次之后,System.Data.SqlClient.SqlException
最终会被抛到外面并且你能够抓住它。
如果更改连接字符串的身份验证,则会立即抛出异常,因此在放弃和转发异常之前,可能会尝试多次联系数据源。