我有这样的应用程序结构: 1.表示层调用 2.业务逻辑层又调用 3.数据访问层做数据库处理。异常处理帮助
现在我有一个联系人页面,我可以在其中添加一个新联系人到数据库。
因此,要添加一个新的联系人,我填写所有必需的细节,然后从该页面调用Add方法(驻留在BLL中),该方法依次调用驻留在DAL中的Add方法。
DAL中的此方法返回记录的当前标识,然后返回到BLL方法并最终在页面上传递。
这很好。但如果得到一个异常,我该如何处理它,因为DAL中的方法具有返回类型的int,我不想抛出另一个错误!另外明智的是,我将不得不写几乎所有的方法。
//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;
}
,而我想向用户显示一个用户友好的消息,他们可以很容易地理解和平均值,而我会发送邮件到我自己记录的是刚发生的错误。
也请亲切告诉我如何实现我的自定义异常类。
请告诉我,我该如何做到这一点!
谢谢。
如果我告诉你你已经知道了什么,请原谅我,但是你是否意识到你不需要捕获异常 - 如果单独留下,他们将直接通过这些方法冒泡,直到它们碰到异常处理程序(如果存在一)?因此,您可以简单地使用友好的消息来引发异常,并在表示层中拥有全局处理程序来捕获它们。 虽然像@亨克说的,你应该真的抓住他们在每一层的边界。演示文稿不应该从低层明确知道特定的异常类型,例如SQLException。 – 2010-07-02 10:26:11