处理异常我有一个ASP.NET Web Forms应用程序与UI,服务层和库层。如何在多层的ASP.NET Web应用程序
一些在我服务层的方法与一个Web服务进行通信,因此,我想换都到Web方法的调用在Try-Catch-Finally
结构。
假设我有我的服务层以下方法:
public RegistrationDetails GetRegistrationDetails(int userId)
public bool RegisterUser(UserData myUserData)
凡RegistrationDetails
和myUserData
的对象类型(类)。
我担心的是:如果我创建一个Try-Catch-Finally
来包装调用Web服务上面列出的方法的实现中,如果有一个例外,我怎么能返回的消息字符串如果返回类型RegistrationDetails
和bool
?
我在考虑给每个返回对象添加一个属性,但我不知道这是否是一个好的解决方案。例如,而不是使用bool
:
public class RegisterResponse
{
public bool isRegistered { get; set; }
public string ExceptionMessage { get; set; }
}
public RegisterResponse RegisterUser(UserData myUserData)
,然后检查ExceptionMessage是null
或String.Empty
。这是一个好方法吗?由于
我通常让异常冒泡到一个窗体并在那里处理它。当您在较低级别捕获特定异常时,可能是因为错过了某处之间错误的真正原因。在较低的水平,我只是把它们扔出来...... – IrishChieftain
感谢您的回答。我想捕捉所有异常的原因是为了避免用户看到典型的ASP.NET错误页面。我想要处理它们并向用户(通过用户界面)显示最佳信息,以便简化问题解决过程。 – CiccioMiami