当前位置: 首页 > 面试题库 >

三层架构和例外

卫飞
2023-03-14
问题内容

它被认为是很好的做法,对于应用程序的每个层(即一个例外PresentationExceptionServiceExceptionPersistenceException等)。但是,如果我的服务层直接调用DAO方法(持久层方法)而不进行其他操作,该怎么办?

像这样:

public class MyService {
   private IPersonDAO dao = new PersonDAO();

   public void deletePerson(int id) { 
      dao.deletePerson(id);
   }

}

我是否应该将此DAO方法调用包装为一个try- catch块,然后将可能的异常抛出为ServiceException?每个DAO方法应该只抛出PersistenceException吗?


问题答案:

那么,您的Dao异常与服务层无关,并且服务层与dao层异常无关。正确的方法是捕获dao异常,然后将新的自定义异常扔到服务层。

如果需要调试异常并需要确切原因,则可以使用getCause()和getSuppressed()方法。

我应该用try-
catch块包装此DAO方法调用,然后将可能的异常作为ServiceException抛出吗?每个DAO方法都应该只抛出PersistenceException吗?

-–>是的,把它包起来。您可以从dao层抛出其他异常。请参阅以下示例:

public class MyDao {

   public Entity getMyEntity(int id) throws ObjectNotFoundException, PersistenceException {
      try {
         // code to get Entity
         // if entity not found then 
         throw new ObjectNotFoundException("Entity with id : " + id + "Not found.");
      } catch(Exception e) { // you can catch the generic exception like HibernateException for hibernate
         throw new PersistenceException("error message", e);
      }
   }

}


 类似资料:
  • 本文向大家介绍asp.net实现三层架构的例子,包括了asp.net实现三层架构的例子的使用技巧和注意事项,需要的朋友参考一下 看了2天的三层架构,其实自己以前也看过这个,可以由于没有使用过,所以对于三层架构也只是知道罢了,昨天看了一下他一些内部的具体架构,三层分别是BLL、WEB、DAL,在web接受用户请求,bll处理业务,dal处理数据库事务,下面是一个简单的例子!这是一个添加新员工的页面:

  • 让我们讨论一下微服务环境的体系结构。我们正在公司内部进行讨论,我想得到一些反馈。我认真考虑的是编排层(代码复制、更多移动部件改变api)。 网络应用- 原料药- 在这种情况下,服务不允许相互对话。业务流程层中的聚合服务 网络应用- 原料药- 这里允许服务相互对话,这里存在聚合服务。 账单属于哪里

  • 本文向大家介绍谈谈你对三层架构的理解?相关面试题,主要包含被问及谈谈你对三层架构的理解?时的应答技巧和注意事项,需要的朋友参考一下 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候的所见所得。业务逻辑层(BLL):针对具体问题

  • 三模式体系结构也称为ANSI/SPARC体系结构或三级体系结构。 该框架用于描述特定数据库系统的结构。 三模式体系结构还用于分离用户应用程序和物理数据库。 三模式体系结构包含三个级别。它将数据库分为三个不同的类别。 三模式架构如下: 在上图中: 它显示了DBMS体系结构。 映射用于转换各种数据库级体系结构之间的请求和响应。 映射对小型DBMS不利,因为它需要更多时间。 在外部/概念映射中,有必要将

  • 在Android项目中,通常只有两层:包含MVVM内容的表示层和包含存储库的数据层。从ViewModel直接访问存储库,在将数据传递给视图之前,在ViewModel中处理数据。 所以我的问题是:Android上的usecases/interactors的目的是什么?它们是否相关,或者是否可以完全集成到Android的ViewModel中?

  • 本文向大家介绍ASP.NET存储过程实现分页效果(三层架构),包括了ASP.NET存储过程实现分页效果(三层架构)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了ASP.NET存储过程实现分页的具体代码,供大家参考,具体内容如下 实现效果: 文本框内输入跳转的页数,点击GO会跳转到该页 首先在项目下加入BLL,DAL,DataAccess,MODEL类库 1、前台界面 2、后台代码