1
在我的应用程序时出现异常,我需要从业务层 此基础上,错误代码,我需要证明可在消息传递错误代码表示层DB。
我想知道如何传递BL中的错误代码并获取表示层中的错误代码。
对于日志记录异常我使用log4net和企业库4.0。传递错误代码从Exception在C#
在此先感谢
在我的应用程序时出现异常,我需要从业务层 此基础上,错误代码,我需要证明可在消息传递错误代码表示层DB。
我想知道如何传递BL中的错误代码并获取表示层中的错误代码。
对于日志记录异常我使用log4net和企业库4.0。传递错误代码从Exception在C#
在此先感谢
您可以创建自己的业务异常来自Exception
继承,并且使课堂接受你的错误代码。此类将成为您的域的一部分,因为这是一个业务例外。与数据库例外等基础设施例外无关..
public class BusinessException : Exception
{
public int ErrorCode {get; private set;}
public BusinessException(int errorCode)
{
ErrorCode = errorCode;
}
}
您还可以使用枚举或常量。我不知道你的ErrorCode类型。
在业务层,你可以通过抛出异常:
throw new BusinessException(10); //If you are using int
throw new BusinessException(ErrorCodes.Invalid); //If you are using Enums
throw new BusinessException("ERROR_INVALID"); //
所以在表示层后
您可以捕获该异常,并根据您的需要对其进行处理。
public void PresentationMethod()
{
try
{
_bll.BusinessMethod();
}
catch(BusinessException be)
{
var errorMessage = GetErrorMessage(be.ErrorCode);
ShowErrorUI(errorMessage);
}
}
http://stackoverflow.com/questions/7135492/asp-net-displaying-business-layer-errors-in-the-presentation-layer – 2013-04-26 07:07:05
http://stackoverflow.com/questions/2210841/什么是正确的方式传递一个例外-c – Freelancer 2013-04-26 07:08:45
我建议你自己写一个类使用公共静态方法doLogToMyDatabase(String aError);那么当你捕获一个exeption只需调用该方法将写入你的数据库,你需要什么。 – 2013-04-26 07:12:16