当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

EJB非常处理的最佳做法[Java编程]

赞助商链接



  本文“EJB非常处理的最佳做法[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

随着 J2EE 成为企业开辟平台之选,越来越多基于 J2EE 的利用程序将投入生产.J2EE 平台的重要组件之一是 Enterprise JavaBean(EJB)API.J2EE 和 EJB 技术一同供应了很多长处,但随之而来的还有一些新的挑衅.分外是企业系统,此中的任何问题都必须快速得到办理.在本文中,企业 Java 编程熟行 Srikanth Shenoy 展示了他在 EJB 非常处理方面的最佳做法,这些做法可以更快办理问题.

在 hello-world 情形中,非常处理非常简单.每当碰到某个办法的非常时,就捕捉该非常并打印仓库跟踪大概声明这个办法抛出非常.不幸的是,这种办法不足以处理实际中呈现的各种范例的非常.在生产系统中,当有非常抛出时,极大概是终究用户无法处理他或她的恳求.当发生这样的非常时,终究用户普通但愿能这样:

有一条清楚的消息表明已经发生了一个错误

有一个唯一的错误号,他可以据此拜候可便利得到的客户支持系统

问题快速得到办理,并且可以确信他的恳求已经得处处理,大概将在设定的时间段内得处处理

抱负情形下,企业级系统将不但为客户供应这些基本的服务,还将预备好一些必要的后端机制.举例来说,客户服务小组应当收到当即的错误告诉,以便在客户打电话告急之前服务代表就可以意识到问题.此外,服务代表应当可以穿插引用用户的唯一错误号和产品日记,从而快速辨认问题 ― 最好是能把问题定位到切当的行号或切当的办法.为了给终究用户和支持小组供应他们需求的工具和服务,在构建一个系统时,您就必须对系统被布置后大概出问题的全部地方心中有数.

在本文中,我们将谈谈基于 EJB 的系统中的非常处理.我们将从回想非常处理的底子知识开始,包含日记实用程序的利用,然后,很快就转入对 EJB 技术若何定义和管理差别范例的非常举行更具体的谈论.此后,我们将通过一些代码示例来研究一些常见的非常处理办理筹划的优缺陷,我还将展示我自己在充分操纵 EJB 非常处理方面的最佳做法.

请注意,本文假定您熟习 J2EE 和 EJB 技术.您应理解实体 bean 和会话 bean 的差别.假如您对 bean 管理的长期性(bean-managed persistence(BMP))和容器管理的长期性(container-managed persistence(CMP))在实体 bean 上下文中是什么意思稍有理解,也是有帮忙的.请参阅 参考资料部份理解关于 J2EE 和 EJB 技术的更多信息.

非常处理底子知识

办理系统错误的第一步是成立一个与生产系统具有相同构造的测试系统,然后跟踪招致抛出非常的全部代码,以及代码中的全部差别分支.在分布式利用程序中,极大概是调试器不工作了,所以,您大概将用 System.out.println() 办法跟踪非常.System.out.println 固然很便利,但开销宏大.在磁盘 I/O 期间, System.out.println 对 I/O 处理举行同步,这极大降低了吞吐量.在缺省情形下,仓库跟踪被记录到掌握台.但是,在生产系统中,浏览掌握台以查看非常跟踪是行不通的.并且,不能保证仓库跟踪会显示在生产系统中,因为,在 NT 上,系统管理员可以把 System.out 和 System.err 映射到 ' ' ,在 UNIX 上,可以映射到 dev/null .此外,假如您把 J2EE 利用程序服务器作为 NT 服务运行,乃至不会有掌握台.即便您把掌握台日记重定向到一个输出文件,当产品 J2EE 利用程序服务器重新启动时,这个文件极大概也将被重写.

非常处理的原则

以下是一些广泛承受的非常处理原则:

假如无法处理某个非常,那就不要捕捉它.

假如捕捉了一个非常,请不要胡乱处理它.

尽大概在接近非常被抛出的地方捕捉非常.

在捕捉非常的地方将它记录到日记中,除非您打算将它重新抛出.

按照您的非常处理必须多精密来构造您的办法.

需求用几种范例的非常就用几种,特别是关于利用程序非常.

第 1 点明显与第 3 点相冲突.实际的办理筹划是以下二者的折衷:您在距非常被抛出多近的地方将它捕捉;在完好丧失原始非常的企图或内容之前,您可以让非常落在多远的地方.

注:固然这些原则的利用遍及全部 EJB 非常处理机制,但它们并非分外针对 EJB 非常处理的.

由于以上这些缘由,把代码组装成产品并同时包含 System.out.println 并非一种挑选.在测试期间利用 System.out.println ,然后在形成产品之前除去 System.out.println 也不是上策,因为这样做意味着您的产品代码与测试代码运行得不尽相同.您需求的是一种声明掌握日记机制,以使您的测试代码和产品代码相同,并且当记录日记以声明方法关闭时,给产品带来的性能开销最小.

这里的办理筹划明显是利用一个日记实用程序.采获得当的编码约定,日记实用程序将负责切确地记录下任何范例的消息,不管是系统错误还是一些告诫.所以,我们将在进一步报告之前谈谈日记实用程序.


  以上是“EJB非常处理的最佳做法[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • EJB非常处理的最佳做法
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .