- 浏览: 1011369 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
Java编程中异常处理的优劣之道
2007-08-09 09:02 作者:收集整理 出处:天极Yesky软件频道 责任编辑:方舟
Java编程中的异常处理是一个很常见的话题了,几乎任何一门介绍性的Java课程都会提到异常处理。不过,我认为很多人其实并没有真正掌握正确处理 异常情况的方法和策略,最多也就不过了解个大概,知道点概念。本文就对三种不同程度和质量的Java异常处理进行了讨论,所阐述的处理异常的方式按手法的 高下分为:
好,不好和恶劣三种。
同时向你提供了一些解决这些问题的技巧。
首先解释一些java异常处理中必须搞清楚的定义和机制。Java语言规范将自Error类或RuntimeException类衍生出来的任何违例都称作“不可检查”(Unchecked)异常;其他所有异常则称作“可检查”(Checked)异常。
所谓可检查异常,是指我们应该自行处理的异常。至于处理的手段,要么加以控制(try catch),要么通告(throws)他们有可能产生。通常,应捕捉那些已知如何处理的异常,而通告那些不知如何处理的异常。
而对那些不可检查异常来说,他们要么在我们的控制之外(Error),要么是我们首先就不该允许的情况(RuntimeException).
至于异常的指定,Java的规则非常简单:一个方法必须通告自己可能产生的所有可检查异常。编写自己的方法时,并不一定要通告出方法实际可能产生的每一
个异常对象,要想理解什么时候必须要方法的throws丛句来通告异常,就必须知道对一个异常来说,他只有可能在下面四种情况下才会产生:
1.调用了可能产生异常的方法。比如BufferedReader类的readLine方法。该方法通告java.io.IOException异常
2.侦测到一个错误,并用throw语句产生异常。
3.出现一个编程错误。比如a[-1] = 0。
4.Java产生内部错误。
如果出现头两种情况之一,必须告诉打算使用自己方法的人:假如使用这个方法,可能造成一个异常的产生(即在方法头上使用throws),一个简单的记忆方法:
只要含有throw,就要通告throws。如果一个方法必须同时处理多个异常,就必须在头内指出所有异常。就像下例展示的那样,用逗号对他们进行分割:
1 2 3 4 5 6 7 |
class Animation { public Image loadImage(Strint s) throws EOFException,MalformedURLException { ………… } } |
然而,我们不需要通告内部java错误,也不应该通告自RuntimeException衍生出来的异常。
好的异常处理
好异常处理提供了处理程序错误的统一机制。事实上,Java语言通过向调用者提出异常警告的方式而显著地提升了软件开发中的异常处理能力。这种方式把
Java语言中的“方法(method)”进行了扩展和增强,使之包括了自身的错误条件。下面就让我们看一个例子,这个例子说明了这种情况。
以下是FileInputStream构造器之一的原型:
public FileInputStream(String name) throws FileNotFoundException Java
的方法和构造器必须声明他们在被调用时可能“扔出”的异常,采用的关键字就是“throws”。这种在方法原型中出现的异常提示
增加了编程的可靠性。
显而易见,这种方式是向方法的调用者提示了可能出现的异常条件,这样调用者就可以对这些异常作出适当的相应处理。以下代码示意我们是如何捕获并且处理FileNotFoundException 这一异常的:
1 2 3 4 5 6 7 8 9 10 11 |
try { FileInputStream fis = new FileInputStream(args[0]); // other code here ... } catch (FileNotFoundException fnfe) { System.out.println("File: " + args[0] + " not found. Aborting." ); System.exit(1); } |
Java异常处理还有其他一些优秀的特性,这就是可检查异
常、用户定义异常和在JDK 1.4中推出的新型Java记录API(Java Logging
API)。java.lang.Exception的所有子类都属于可检查异常。可检查异常(checked
exception)是扔出该异常的方法所必须提示的异常,这种异常必须被捕获或者向调用者提示。用户定义异常(User-defined
exceptions)是定制的异常类,这种异常类扩展了java.lang.Exception类。优良的Java程序规定定制异常封装、报告和处理他
们自己独有的情况。最新的Java记录API(logging API)则可以集中记录异常。
发表评论
-
调试jdk中的源码,查看jdk局部变量
2013-06-15 23:30 1048调试jdk中的源码,查看jdk局部变量 2012-04 ... -
Eclipse快捷键 10个最有用的快捷键<转>
2013-04-11 23:28 1070Eclipse中10个最有用的快捷键组合 一个Eclip ... -
Lucene 3.6 中文分词、分页查询、高亮显示等
2012-12-09 23:35 18101、准备工作 下载lucene 3.6.1 : htt ... -
Maven实战(九)——打包的技巧(转)
2012-10-12 00:41 932“打包“这个词听起 ... -
基于Maven的web工程如何配置嵌入式Jetty Server开发调试环境(转)
2012-10-12 00:28 9161、首先在web工程的POM文件里添加依赖jar包如下: ... -
轻轻松松学Solr(1)--概述及安装[转]
2012-09-18 14:59 990概述 这段时间对企 ... -
分析Netty工作流程[转]
2012-09-04 19:02 883下面以Netty中Echo的例 ... -
让eclipse在ubuntu下面好看一点
2012-03-27 10:17 914<p> </p> <h1 cla ... -
zookeeper安装和应用场合(名字,配置,锁,队列,集群管理)[转]
2012-01-12 17:59 1647安装和配置详解 本文 ... -
Jakarta-Common-BeanUtils使用笔记[转]
2012-01-10 14:13 1153Jakarta-Common-BeanUtils ... -
一个关于Java Thread wait(),notify()的实用例【转】
2012-01-07 16:05 1019///// // ProducerConsume ... -
Java基础:Java中的 assert 关键字解析【转】
2012-01-06 19:50 1056J2SE 1.4在语言上提供了 ... -
一篇不错的讲解Java异常的文章(转载)----感觉很不错,读了以后很有启发[转]
2012-01-06 15:02 1259六种异常处理的陋习 ... -
如何解决HP QC(Quality Center)在Windows 7下不能工作的问题
2011-12-26 10:48 1574HP QC(Quantity Center) 是一款不错的测 ... -
JAVA读写文件,中文乱码 【转】
2011-12-19 23:43 2115最近在做HTML静态生成,需要从硬盘上把模版文件的内容读出来。 ... -
Java 6 JVM参数选项大全(中文版)【转】
2011-12-19 19:51 966Java 6 JVM参数选项大全(中文版) 作者 ... -
使用assembly plugin实现自定义打包【转】
2011-12-13 01:58 965在上一篇文章中,讨论到在对maven的机制不熟悉的情况下,为了 ... -
使用maven ant task实现非标准打包[转]
2011-12-13 01:56 1045maven很强大,但是总有些事情干起来不是得心应手,没有使用a ... -
Java日期转换SimpleDateFormat格式大全【转】
2011-12-08 20:22 130924小时制时间 显示: public clas ... -
使用Spring的表单标签库
2011-11-22 20:08 106713.9. 使用Spring的 ...
相关推荐
在Java编程中,异常处理是不可或缺的一部分,它确保了程序的健壮性和稳定性。异常处理是一种机制,允许程序员在程序运行时捕获并处理错误,而不是让程序无控制地崩溃。这一机制通过try-catch-finally语句块来实现,...
### Java编程中特别处理的优劣之道 #### 一、特别处理的概念与分类 Java编程中的特别处理(异常处理)是确保程序健壮性和稳定性的关键机制。Java将异常分为两类:“不可检查”(Unchecked)异常和“可检查”...
Java编程中的异常处理是保证程序健壮性与稳定性的关键环节。本文主要探讨了Java异常处理的优缺点,包括对不同类型的异常分类、处理策略以及最佳实践。 首先,Java异常分为两大类:不可检查异常(Unchecked)和可...
在编程领域中,异常处理是确保程序稳定性和健壮性的关键机制之一。本文将深入探讨Java中的异常处理机制,并分析其优势与不足之处,帮助开发者更好地理解和运用这一机制。 #### Java异常处理概述 Java中的异常处理...
为了使读者能够顺利地用Java实现遗传算法,书中会回顾Java编程的基础知识,包括数据类型、控制结构、类与对象、接口、异常处理、多线程等,确保读者具备必要的编程技能。 三、遗传算法的Java实现 书中将详细阐述...
Java编程语言之所以能够成为众多编程语言中的佼佼者,与其自身的特点是分不开的。编程初学者可以轻松地学习和掌握Java语言,而有经验的程序员也可以利用Java语言的特点快速进行软件开发。Java的普及也得益于其丰富的...
Java试题精选50道(经典)集合了...以上只是部分知识点的概述,Java试题精选50道中涉及的题目会涵盖这些领域,通过解答这些问题,Java学员可以深入理解并巩固Java编程的核心概念,为后续的学习和实际开发打下坚实的基础。
Java集合框架是Java类库中使用频率最高的部分之一,包括Collection和Map两大接口体系。Collection体系分为List、Set和Queue三个主要子接口,它们各自有不同的实现类,用于存储和操作数据集合。List接口代表有序集合...
在异常处理方面,C#比Java表现得更好,无论是内置支持还是执行效率。在跨平台能力上,Java以其JVM的广泛实现赢得了赞誉,尽管性能有时会成为问题。相比之下,C#虽然在底层设计上考虑了移植性,但目前成熟的跨平台...
Java五子棋是一款基于Java编程语言开发的棋类游戏,主要体现了Java的图形用户界面(GUI)设计、事件处理和算法应用等核心知识点。在这个游戏中,玩家可以通过点击棋盘来放置棋子,当一方的棋子在横、竖、斜线上达到...
在中国象棋这个项目中,开发者使用Java编程语言构建了一个完整的象棋游戏系统。Java是一种广泛使用的面向对象的编程语言,以其“一次编写,到处运行”的特性而著名,这使得Java成为开发跨平台应用的理想选择,如中国...
Java类库是Java编程中不可或缺的一部分,它包含大量的类、接口和方法,用于执行各种操作。在教学中,教师需要引导学生熟悉常用的Java类库,包括Java基础类库、异常处理、图形用户界面(GUI)以及输入输出(I/O)流等...
异常处理也是Java编程的重要一环。运行时异常与一般异常(也称检查型异常)在处理上有所区别。运行时异常是程序运行时可能出现的错误,如空指针异常,编译器不强制捕获,而一般异常在方法签名中需要声明抛出,否则...
【编程语言优劣比较】 在IT领域,编程语言的选择至关重要,因为不同的语言有着各自的特性和适用场景。本文将深入探讨几种主流的编程语言——C、C++、Java、.NET、Ruby以及JavaScript,分析它们的优缺点。 1. **...
Java中的集合类是Java编程中不可或缺的一部分,它们用于存储和管理对象。集合框架是一个统一的接口层次结构,提供了丰富的操作和算法,使得处理对象集合变得简单高效。在Java中,集合类位于`java.util`包内,它们为...
5. **异常处理**:异常处理是Java编程中的一个重要方面,Bloch建议避免使用空检查,而应优先考虑抛出异常,他还讨论了如何编写自定义异常类以及何时应该使用checked异常和unchecked异常。 6. **多线程编程**:在...
在这个项目中,我们将探讨Java编程基础、图形用户界面(GUI)设计、算法实现以及人工智能在游戏中的应用等关键知识点。 1. **Java编程基础**: - **类与对象**:五子棋游戏的核心是棋盘和棋子,这可以通过创建棋盘...
Java 中的异常处理机制是通过 try-catch-finally 语句块来实现的。try 代码块用于捕获可能抛出的异常,catch 代码块用于处理捕获到的异常,finally 代码块则包含需要无论是否发生异常都必须执行的清理代码。这三者...