c# - 捕获特定的 MySQL 错误 (C#)

标签 c# mysql database exception visual-studio-2012

有没有办法捕获一个特定的 MySQL 错误或多个特定的 MySQL 错误? 如果错误是“未选择数据库”,我想调用一个方法。

我正在使用 MySQL-Connector/Net。

最佳答案

在异常的 catch 子句中,您应该能够检查 Number异常的属性以确定引发了哪个 MySql 异常。例如:

try
{
    //Blah
}
catch (MySqlException ex)
{
    if (ex.Number == 1046)
    {
        //Handle
    }
    throw;
}
catch (OtherExceptionType oet)
{
    //Handle
}

如果您使用的是 C# 6.0,则可以使用异常过滤器。

try
{
    //Blah
}
catch (MySqlException ex) when (ex.Number == 1046)
{
    // Handle
}
catch (OtherExceptionType oet)
{
    //Handle
}

根据 the documentation,“未选择数据库”的错误编号为 1046 .其他错误编号也列在那里。

关于c# - 捕获特定的 MySQL 错误 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22512847/

相关文章:

c# - 执行多条件时出错,未知列 - Mono + NHibernate + MySQL

c# - HttpRuntime.Cache 没有过期?

c# - Autofac - 自动注册错误 : No constructors can be found with 'Public binding flags'

mysql - sql查询数据格式

php - Laravel 队列中的执行时间呈指数增长

database - ROW_NUMBER() OVER () with order by in H2

c# - 我可以将继承与扩展方法一起使用吗?

mysql - SQL 或返回较少结果

python - 在数据库中具有类似实例的行为

database - 如何从 InfluxDB 获取 `MEASUREMENTS` 的大小?