捕获特定的mysql错误(c#)

本文关键字:错误 mysql | 更新日期: 2023-09-27 17:50:55

是否有办法捕获一个特定的MySQL错误或多个特定的MySQL错误?如果错误是"no selected database",我想调用一个方法。

我正在使用MySQL-Connector/Net。

捕获特定的mysql错误(c#)

在异常的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
}

根据文档,"no database selected"的错误编号为1046。这里还列出了其他错误编号