- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我不断地从许多开发人员那里得到这个“建议”。根据我的经验,我发现 EJBExceptions 非常适合从 bean 实例的角度来看的“世界末日”(比如当出现错误以至于 bean 实例无法自行恢复时)。如果一个实例可以恢复,我认为抛出一个应用程序异常会更好。
这是我一次又一次遇到的模式:
private SomeResource resource;ejbCreate: resource = allocateResource(...);omMessage: try { ... } catch (JMSException e) { throw new EJBException(e); }ejbRemove: freeResource(resource);
恕我直言,这是一种导致资源泄漏的反模式。
编辑:具体来说,EJB 规范指出,如果一个 bean 从业务方法中抛出一个运行时异常(EJBException 是一个运行时异常),那么该 bean 将被丢弃,而不对其调用 ejbRemove。
这是反对抛出 EJBException 的相关示例吗?应该抛出 EJBException 的相关情况有哪些?
最佳答案
EJB 规范(EJB 3 中的 14.2.2)推荐在 EJB 无法从它遇到的异常中恢复的情况下抛出 EJBException
。该规范还指出,EJB 可以合理地允许(未经检查的)系统异常传播到容器。
我同意您阅读规范,在这种情况下容器不会调用生命周期回调方法,因此您担心通常会在 ejbRemove() 中发生的任何资源整理
不会发生回调,因此存在资源泄漏的危险。
我的经验是,由于缺乏防御性编码,会出现很多棘手的问题。 “情况 X 不可能发生在一个表现良好的系统中,如果它发生了,那么整个系统就会崩溃,所以我不会为这种可能性编写代码。”然后我们得到了一些“有趣”的星星对齐和运算符(operator)错误,并且“不可能发生”快速连续发生多次,意想不到的副作用开始导致真正难以诊断的问题。
因此我会说:
TransientException
检查异常来做到这一点。 ejbRemove
中没有重要的内务处理,那么您可以允许 SystemExceptions 传播 - 但我不确定这是否友好。您依赖于一个库,它会抛出一个 NullPointerException
。捕获并重新抛出 TransientException
实际上更可靠吗?EJBException
或系统异常,以便销毁该实例,但至少您已尝试进行内务处理。关于java - 为什么抛出EJBException是 "recommended"的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1581600/
最近一篇关于 HTML5 的文章说,Proposed Recommendation 日期是 2022 年,Candidate Recommendation 日期是 2012 年。 我想知道“Propo
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是无关紧要的,因
我知道缩写SVM(Support Vector Machines)和 SVD(Singular Value Decomposition)并且 SVM 和 SVD 都用于推荐引擎。 用外行的话来说,这两
我想尝试构建一个推荐系统,我的意思是一种算法,可以查看用户发布的偏好和/或评论,然后为他们提出建议,类似于 netflix 或亚马逊使用的算法。 什么是学习如何编写这样的东西的好资源?我应该从哪里开始
这是一个理论问题。假设我已经实现了两种类型的协同过滤:基于用户的 CF 和基于项目的 CF(以 Slope One 的形式)。 我有一个很好的数据集供这些算法运行。但是我想做两件事: 我想向数据集添加
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭去年。 Improve th
我正在阅读 CF 中的一些论文,并注意到大多数最先进的方法仅基于评级矩阵上的不同分解方法。我想知道是否有一些将内容信息(例如用户特征和项目特征)组合成因式分解的代表性作品。有什么想法吗? 最佳答案 我
例如:我有一个像这样的主文件 userid itemid rating 1
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 7年前关闭。 Improve t
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 6年前关闭。 Improve this questi
我正在构建一个基于内容的电影推荐系统。很简单,只要让用户输入电影名称,系统就会找到特征最相似的电影。 在计算相似度并按降序排列得分后,我找到5个相似度得分最高的相应电影并返回给用户。 到目前为止,当我
我有这个问题:为 facebook 正确配置的页面: (我也尝试过:) (还有其他一些) 在head中,对应的OG代码:app_id、url、type、title、image、de
最近发现好几个网站都有“Recommended for You”之类的东西,比如youtube,或者facebook,可以研究我的使用行为,推荐一些内容给我... ...我会想知道他们如何分析这些信息
我在https://reactrouter.com/en/main/hooks/use-navigate中看到“在加载器和操作中使用重定向通常比在这个钩子中使用重定向更好”,所以我应该将useNavi
嘿,对于任何做过这件事的人来说,这只是一个简单的问题。我想创建一个视频管网站。我以前做过文件上传,但想知道是否有人可以就我打算做什么给我建议。 我计划的方式就是在我的网页目录下有一个文件夹,病毒扫描和
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this qu
在构建网站时,例如问答网站或社区论坛网站,仅了解 HTML、CSS、PHP、MySQL 和 javascript 是否足以使网站动态化? 我之所以这样说,是因为我和我的老师交谈时,他说主要网站使用多种
据我所知,Embedly刚刚开始将“推荐”视频的版本提升到YouTube在其“Cards”产品上嵌入的底部。有什么办法可以删除它们? Embedly Recommended Videos 我们将Emb
我想使用 prediction.io 构建推荐服务。我认为 Universal Recommender ( http://templates.prediction.io/PredictionIO/te
我是一名优秀的程序员,十分优秀!