- 浏览: 318367 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
完善自我:
支持一下!
揭秘IT人才特点:中美印日四国程序员比较 -
悲剧了:
好文,看玩thinking in java的提到的异常处理,看 ...
高效的Java异常处理框架(转) -
yin_bp:
开源框架bbossgroups页支持组件异步方法调用哦,详情请 ...
Spring 3中异步方法调用 -
flyjava:
sun的悲哀
Apache怒了,威胁说要离开JCP
摘要:本文从Java异常最基本的概念、语法开始讲述了Java异常处理的基本知识,分析了Java异常体系结构,对比Spring的异常处理框架,阐述了异常处理的基本原则。并且作者提出了自己处理一个大型应用系统异常的思想,并通过设计一个异常处理的框架来论述此思想。 Java异常的捕获和处理是一个不容易把握的事情,如果处理不当,不但会让程序代码的可读性大大降低,而且导致系统性能低下,甚至引发一些难以发现的错误。 Java异常处理涉及到五个关键字,分别是:try、catch、finally、throw、throws。下面将骤一介绍,通过认识这五个关键字,掌握基本异常处理知识。 1、 异常处理的基本语法 以上语法有三个代码块: catch语句块会捕获try代码块中发生的异常并在其代码块中做异常处理,catch语句带一个Throwable类型的参数,表示可捕获异常类型。当try中出现异常时,catch会捕获到发生的异常,并和自己的异常类型匹配,若匹配,则执行catch块中代码,并将catch块参数指向所抛的异常对象。catch语句可以有多个,用来匹配多个中的一个异常,一旦匹配上后,就不再尝试匹配别的catch块了。通过异常对象可以获取异常发生时完整的JVM堆栈信息,以及异常信息和异常发生的原因等。 finally语句块是紧跟catch语句后的语句块,这个语句块总是会在方法返回前执行,而不管是否try语句块是否发生异常。并且这个语句块总是在方法返回前执行。目的是给程序一个补救的机会。这样做也体现了Java语言的健壮性。 2、 try、catch、finally三个语句块应注意的问题 3、throw、throws关键字 throws关键字用于方法体外部的方法声明部分,用来声明方法可能会抛出某些异常。仅当抛出了检查异常,该方法的调用者才必须处理或者重新抛出该异常。当方法的调用者无力处理该异常的时候,应该继续抛出,而不是囫囵吞枣一般在catch块中打印一下堆栈信息做个勉强处理。下面给出一个简单例子,看看如何使用这两个关键字:
1、 异常是程序运行过程过程出现的错误,在Java中用类来描述,用对象来表示具体的异常。Java将其区分为Error与Exception,Error是程序无力处理的错误,Exception是程序可以处理的错误。异常处理是为了程序的健壮性。 2、 Java异常类来自于Java API定义和用户扩展。通过继承Java API异常类可以实现异常的转译。 3、 异常能处理就处理,不能处理就抛出,最终没有处理的异常JVM会进行处理。 4、 异常可以传播,也可以相互转译,但应该根据需要选择合理的异常转译的方向。 5、 对于一个应用系统,设计一套良好的异常处理体系很重要。这一点在系统设计的时候就应该考虑到。
二、 异常的捕获和处理
在java中,异常处理的完整语法是:
try语句块,表示要尝试运行代码,try语句块中代码受异常监控,其中代码发生异常时,会抛出异常对象。
第一、try、catch、finally三个语句块均不能单独使用,三者可以组成 try...catch...finally、try...catch、try...finally三种结构,catch语句可以有一个或多个,finally语句最多一个。
第二、try、catch、finally三个代码块中变量的作用域为代码块内部,分别独立而不能相互访问。如果要在三个块中都可以访问,则需要将变量定义到这些块的外面。
第三、多个catch块时候,只会匹配其中一个异常类并执行catch块代码,而不会再执行别的catch块,并且匹配catch语句的顺序是由上到下。
throw关键字是用于方法体内部,用来抛出一个Throwable类型的异常。如果抛出了检查异常,则还应该在方法头部声明方法可能抛出的异常类型。该方法的调用者也必须检查处理抛出的异常。如果所有方法都层层上抛获取的异常,最终JVM会进行处理,处理也很简单,就是打印异常消息和堆栈信息。如果抛出的是Error或RuntimeException,则该方法的调用者可选择处理该异常。有关异常的转译会在下面说明。
3、 Throwable类中的常用方法
getCause():返回抛出异常的原因。如果 cause 不存在或未知,则返回 null。
getMessage():返回异常的消息信息。
printStackTrace():对象的堆栈跟踪输出至错误输出流,作为字段 system.err 的值。
2、 对于检查异常,如果不能行之有效的处理,还不如转换为RuntimeException抛出。这样也让上层的代码有选择的余地――可处理也可不处理。
3、 对于一个应用系统来说,应该有自己的一套异常处理框架,这样当异常发生时,也能得到统一的处理风格,将优雅的异常信息反馈给用户。
五、 设计一个高效合理的异常处理框架
发表评论
-
Java包导入机制的解析总结
2010-12-01 20:50 1195java中有两种包的导 ... -
提高JSP和SERVLET性能的七大绝招
2010-11-30 10:02 1166本文讲述了调整JSP和servlet的一些非常实用的方法,它可 ... -
使用future实现内置异步API
2010-11-16 15:52 1055当设计并发策略时,要将 "what做什么" ... -
asyn4j—java 异步方法调用框架
2010-11-16 15:36 2092asyn4j 是一个java异步方法调用框架,包括 ... -
关于 Java 性能监控您不知道的 5 件事,第 2 部分
2010-11-15 11:02 767全功能内置分析器,如 JConsole 和 VisualVM ... -
关于 Java 性能监控您不知道的 5 件事,第 1 部分
2010-11-15 10:13 802当应用程序性能受到损 ... -
jsp生成静态页(jsp+servlet+xml)
2010-11-08 17:38 1327package ningxia.bl.admin.conten ... -
动态JSP页生成静态HTML
2010-11-08 17:31 1052具体实现: 利用 Filte ... -
深入Java核心 Java中多态的实现机制
2010-10-23 19:22 1217多态性是面向对 ... -
八个改善Java遗留系统的技巧
2010-10-16 10:04 818你没看错,就是这个题目:即使是Java系统也会变成“遗留”系统 ... -
IBM加入OpenJDK,和Oracle一道推动Java发展
2010-10-14 15:14 1661Oracle(新闻发布 )和IBM(新闻发布 )昨天联合宣 ... -
用 Slice 扩展 OpenJPA 应用程序
2010-10-11 09:43 1182简介 Slice 将 OpenJPA 扩展用 ... -
StAX API
2010-09-27 16:08 1256StAX API The StAX API expo ... -
常用 Java Profiling 工具的分析与比较
2010-09-26 17:10 1300简介: 在 Java 程序的 ... -
在Spring基础上实现自己的异常处理框架
2010-09-26 15:03 0应用项目大致的体系结 ... -
关于 Java Scripting API 您不知道的 5 件事
2010-09-25 16:53 955现在,许多 Java 开发人员都喜欢在 Java 平台中使用脚 ... -
关于 Java Database Connectivity 您不知道的 5 件事
2010-09-25 15:32 801目前,许多开发人员把 ... -
综述:字符串到Java对象转换的工具库(转)
2010-09-20 21:41 1117原文:http://www.infoq.com/cn/news ...
相关推荐
高效的 Java 异常处理框架 Java 异常处理是 Java 语言中的一个关键组件,用于处理程序运行过程中的错误和异常。在 Java 中,异常处理框架是 Java 语言健壮性的一个重要体现。本文将从 Java 异常的基本概念和语法...
什么时间使用runtimeException,什么时间使用Exception,大家有没有被困扰到?经整理,JAVA异常处理框架,以及如何构造自己的异常体系,讲得比较详细,值得一看。
高效的Java异常处理框架
本文深入探讨了高效Java异常处理框架,旨在提高代码的健壮性和稳定性。首先,文章介绍了异常的基本概念和Java异常体系结构。 Java将异常视为对象来处理,所有的异常都继承自`java.lang.Throwable`类。Throwable类有...
高效的Java异常处理框架.pdf
Java异常框架处理是Java编程中十分关键的一部分,主要涉及到Java异常类的层次结构、异常的分类、异常的处理方式,以及如何在实际开发中使用异常框架来处理各种运行时错误。 首先,我们需要了解Java的异常类的层次...
Java异常处理和集合框架是Java编程中的两个核心概念,它们对于编写健壮、高效和易于维护的代码至关重要。在这个主题中,我们将深入探讨这两个领域的关键知识点。 首先,让我们来看看Java异常处理。在Java中,异常是...
异常处理机制是面向对象语言普遍支持的提高软件可靠性的方法。作为两款被广泛使用的面向对象语言,C++和Java语言都支持异常处理机制...该算法可以同时支持C++和Java异常处理机制,并有效提高了抛出异常较多的程序的性能。
Java异步编程框架Promise是用于处理异步操作的一个重要工具,尤其在Java中,Promise的概念被广泛应用于多种场景下进行高效的数据处理和结果获取。Promise框架主要作用在于简化异步编程模型,使其更加易于理解和使用...
7. **异常处理**:框架提供了统一的异常处理机制,可以捕获并处理各种运行时异常,确保程序的健壮性。 8. **持续集成与部署**:配合Jenkins、GitLab CI/CD等工具,可以实现自动化构建、测试和部署,加快软件交付...
Java框架是软件开发中的一种重要工具,它提供了一套预定义的规则和结构,使得开发者可以更高效地构建可维护的、可扩展的Java应用程序。本压缩包“Java框架API大全.rar”包含了三大主流Java Web框架——Spring、...
在Java编程语言中,异常处理是一项至关重要的技能,它涉及到程序的健壮性和可靠性。本文将深入探讨"JAVA范例...结合框架如Struts2和开发工具,我们可以实现高效且可靠的异常处理策略,从而提高软件的稳定性和用户体验。
总结起来,基于动态代理的Java远程调用框架旨在克服RMI和EJB的一些缺点,提供更加简洁、灵活和高效的远程调用解决方案。它利用Java的动态代理特性,降低了分布式系统开发的复杂性,同时保持了高度的可扩展性和可定制...
Java微信开发框架是一款基于Java语言设计的高效工具,旨在简化微信接口的调用与微信应用的开发过程。这款框架的诞生得益于开发人员liuhf的努力,以及整个IT行业的共享精神和众多大牛的经验积累。其核心目标是为...
本压缩包中的"smart-socket"可能是一个实现了以上特性的Java AIO通信框架源码,开发者可以通过阅读和学习,理解如何构建一个轻量级、易用且高效的AIO框架,这对于物联网应用的开发将大有裨益。通过深入研究这个框架...
- susu框架将Socket通信的核心逻辑抽象出来,封装了连接管理、数据传输、异常处理等模块,使开发者可以更专注于业务逻辑。 - 它可能包含线程池来管理异步任务,确保并发处理的高效性和稳定性。 - 框架可能提供了...
因此,如何高效简洁地设计异常处理是一门艺术,本文下面先讲述Java异常机制最基础的知识,然后给出在进行Java异常处理设计时的几个建议。若有不正之处,请多多谅解和指正,不胜感激。以下是本文的目录大纲:一.什么...
JSP 负责前端页面的展示,Servlet 负责对外的接口,而 JavaBean 负责处理逻辑用的 Java 对象。这三个技术结合,构成了早期 Java 开发的主流框架。 二、MVC 时代 随着技术的发展,MVC 模式的出现改变了 Java 开发的...
这种搭配方式充分利用了两个框架的优势,使得Java Web应用程序的开发变得更加高效和可靠。 总之,Spring和Struts2都是Java开发的重要框架,它们各自拥有独特的优势,并且可以通过合理的组合来应对不同场景的需求。...