在我的应用程序发生异常时,我需要从业务层传递错误代码 这里基于错误代码到Presentation层,我需要显示DB中可用的消息 我想知道如何从BL传递错误代码并在表示层中获取错误代码 对于记录异常,我使用的是log4net和Enterprise library 4.0。
提前致谢
答案 0 :(得分:1)
您可以创建自己的继承自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);
}
}