gpt4 book ai didi

c# - 如何将一个类中的 SQL 异常号抛给另一个类中的常规异常? C#

转载 作者:行者123 更新时间:2023-11-30 12:21:52 24 4
gpt4 key购买 nike

我想将一个类中的 SqlException 数字抛出到另一个类中的常规 Exception 中。

所以我想要这样的东西(伪代码)

SQL 类

catch (SqlException sqlex)
{
if (sqlex.Number == 911)
{
throw new Exception("There is no database to be found");
}
if (sqlex.Number == 1510)
{
throw new Exception("There isn't a database attached");
}
if (sqlex.Number == 5120)
{
throw; //("You do not have permissions to attach this file.");
}
else
{
throw sqlex;
}
}

B级

if (ex == 5120)
{
dostuff();
}

绕过它的“肮脏”方法是我可以抛出一个带有消息“5120”的新 Exception,然后从那里读取它,但我认为这不是最好的方法吗?

谢谢,

最佳答案

通常,可能引发异常的代码在下一层用 try{} catch{} block 包装,并与自定义异常相结合。对于可能的多个异常,您可以使用多个 catch block :

public class NoPermissionSqlException : Exception
{
public NoPermissionSqlException(string message) : base(message) {}
// ... implement other constructors
}

并使用它:

public void MyMethod()  // method that could throw an exception
{
if (sqlex.Number == 5120)
{
throw new NoPermissionSqlException("You do not have permissions to attach this file.");
}
}

调用代码:

try
{
MyMethod();
}
catch(NoPermissionSqlException ex)
{
// ... handle no permission error here
dostuff();
}
catch(Exception ex)
{
// ... default handler
}

关于c# - 如何将一个类中的 SQL 异常号抛给另一个类中的常规异常? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43468175/

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