gpt4 book ai didi

c# - 帮助异常处理

转载 作者:行者123 更新时间:2023-11-30 15:47:50 24 4
gpt4 key购买 nike

我有这个应用程序结构:1.调用的表示层2.业务逻辑层依次调用3. 数据访问层与数据库打交道。

现在我有一个联系人页面,我可以从中向数据库添加新联系人。

因此,为了添加新联系人,我填写了所有必需的详细信息,然后从页面调用添加方法(驻留在 BLL 中),该方法又调用驻留在 DAL 中的添加方法。

DAL 中的此方法返回记录的当前标识,然后返回到 BLL 方法并最终传递到页面上。

这很好。但是如果出现异常怎么办我该如何正确处理它因为 DAL 中的方法有一个返回类型 int 而且我不想抛出另一个错误!!因为否则我将不得不在几乎所有方法中编写 try catch。

//something like this
public int AddMethod(ContactClass contactObj)
{
int result = 0;

try
{
result = ExecuteSomeSP("SPName", SP_Parameters);
}
catch(SQLException se)
{
throw new SQLException
}

return result;
}

我想向用户展示一条用户友好的消息,他们可以轻松理解,同时我会向自己发送一封邮件,记录刚刚发生的错误。

也请告诉我如何实现我的自定义异常类。

请告诉我该怎么做!!

谢谢。

最佳答案

您不应该在每个方法中都需要一个 try/catch。但是您通常需要在每个 Layer 中进行 try/catch(针对特定操作)。

这是对的,每一层都必须处理自己的违约、清理等。

从 Exception 到“友好消息”的转换是 GUI 的事情,而不是较低层。

当您捕获并重新抛出异常时,请确保您没有丢失信息,将其转发到 InnerException 属性中:

try
{
// DAL
}
catch (DALException de)
{
// Log, ....

throw new BLLException(message, de);
}

关于c# - 帮助异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3164708/

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