`
E.vind
  • 浏览: 20233 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

java中异常小结

阅读更多
1、异常分类 a)按照java本身的设计,有三种可抛出的结构,即checked exception, runtime exception, error,注意这里只是一些分类名称,不代表类名称。 b)其中checked exception和runtime exception(unchecked exception)是由于程序本身的设计或者实现问题引发的,是一种异常,所有的异常都是Exception的子类。而error是由于系统资源不足、约束失败或者JVM的运行环境出现故障导致的,一旦发生,系统将不能恢复,所以它不是一种异常,这里不作讨论。 c)所有的Exception和Error都继承自Throwable类,都需要是可抛出的、可记录的,下面是一个简单的UML示意图(没有全部画出) 其中RuntimeException及其子类(这里没有画出)都是属于unchecked exception,运行时由JVM抛出不需要开发人员捕获、处理。其他的Exception及其子类都属于checked exception,这些异常往往是由开发人员自己实现的,明确借助关键字throws显式抛出、try…catch模块捕获处理的。 2、异常的使用和处理 a)未被检测的异常(unchecked exception),不需要开发人员管理,这种运行时的异常会由JVM自行抛出;也不需要开发人员捕获处理。因为unchecked exception往往是在不可恢复的情形下抛出的,继续执行下去没有必要,而且JVM会自动的停止线程的执行,给出一个适当的异常信息。 b)被检测的异常(checked exception),需要开发人员明确使用throws抛出、try…catch模块捕获处理的。这里会有几种情况需要注意一下。 i.一般情况下:catch语句中做相应的处理,如打日志等等。 ii.异常转译:如果高层的实现应该捕获低层的异常,那么低层就应该抛出一个高层可以解释的异常,举个AbstractSequetialList(是List的骨架实现)的例子,代码如下 //return the element at the specified position in the list public Object get( int index ){ ListIterator i = ListIterator( index ); try{ return i.next(); }catch( NoSuchElementException e ){ throw new IndexOutOfBoundsException( “index” + index ); } } iii.异常链接:底层的异常被高层异常保存起来,并且高层异常提供一个公有的访问接口来获得该底层异常,这样对调试更加有利。Jdk1.4可以如下实现 HigherLevelException( Throwable t ){ super(t); } c)慎用checked exception,如果抛出的被检测异常是唯一的,比如说CloneNotSupportedException这是只有实现了Cloneable接口的类才有的异常。可以想象如果所有异常你都抛出的话,对于API的调用者来说处理这些异常的try…catch模块是多么大,维护成本是多么高!所以这时候就需要把某些checked exception以unchecked exception的形式抛出,只要地方合适。 3、几种常见的异常及其含义 IllegalArgumentException — 参数的值不合适。 IllegalStateException — 对于这个方法,对象的状态不合适。 NullPointerException — 在Null被禁止的情况下使用Null值对象或者引用。 IndexOutOfBoundsException — [...]
分享到:
评论

相关推荐

    java异常机制小结

    Java 异常机制小结 Java 异常机制是 Java 语言中一个非常重要的方面,也是程序设计的一大难点。Java 语言在设计的当初就考虑到异常处理的框架的方案,使得所有的异常都可以用一个类型来表示,不同类型的异常对应...

    java异常小结

    本文主要总结了Java异常处理机制及其相关知识点。 首先,异常机制是Java中用于处理程序运行时错误的框架。当程序执行过程中遇到问题,异常机制会提供一个安全的出口,使得程序控制权能够转移到预先定义的异常处理器...

    java异常讲解

    #### 七、小结 通过以上介绍,我们可以了解到Java异常处理机制的强大之处。正确地使用异常处理不仅可以提高程序的健壮性,还可以让程序更加易于维护和扩展。在实际开发中,合理地使用异常处理机制对于构建高质量的...

    java调用RMI小结

    RMI(Remote Method Invocation,远程方法调用)是Java平台中用于分布式计算的一种技术,它允许一个Java对象调用另一个在不同 JVM(Java虚拟机)上的对象的方法,从而实现跨网络的通信。Java RMI 提供了一种透明的...

    Java多线程小结

    ### Java多线程小结 #### 一、多线程的概念与意义 多线程是Java编程中的一个重要概念,指的是程序在运行时可以同时执行多个线程的能力。它能够提高程序的性能,尤其是在多核处理器的环境下。多线程使得程序能够更...

    Java异常处理操作实例小结

    Java 异常处理操作实例小结 Java 异常处理是 Java 编程语言中的一种错误处理机制,用于捕获和处理运行时的异常情况。本文将通过实例形式总结分析 Java 异常处理操作的常见情况与相关处理技巧。 一、异常处理的使用...

    Java编程开发 Java输入语句小结.doc

    在Java编程中,输入语句是程序与用户交互的关键部分,允许用户向程序提供数据。以下是对Java输入语句的详细总结,主要介绍两种常用的方法:`Scanner`类和`BufferedReader`类。 1. 使用`Scanner`类: `Scanner`类是...

    Java中类的继承学习小结

    下面是对"Java中类的继承学习小结"的详细讲解。 首先,类的继承使用关键字`extends`来实现。子类(也称为派生类)声明时,会指定一个父类(或超类): ```java public class DerivedClass extends BaseClass { //...

    JAVA异常入门(思维导图)

    1.异常的概念2.异常的分类3.捕获并处理异常(try……catch/finally)try……catch块 try……多catch块 try……catch/finally块 4.抛出异常throws5.自定义异常 自定义异常的来由 操作步骤 ...小结 throw与throws的区别

    java基础小结

    《Java基础小结》 Java,作为一种广泛应用的编程语言,以其跨平台、面向对象的特点深受开发者喜爱。这篇博文和随附的PDF笔记旨在总结Java的基础知识,帮助初学者巩固理解,同时也为有经验的开发者提供回顾参考。 1...

    Java Socket通信小结

    Java Socket通信小结 在Java编程中,Socket通信是一种基于TCP/IP协议的网络通信方式,它允许两个应用程序之间建立可靠的、双向的数据传输连接。本文将深入探讨Java Socket通信的基础知识,以及如何通过Java实现一个...

    Java异常小结

    Java异常处理是编程中至关重要的一个部分,它用于处理程序运行时可能出现的错误或异常情况。在Java中,异常处理采用了一种面向对象的方式,通过创建特定的异常类来表示不同类型的错误,使得代码更加清晰、可维护。...

    java笔试题小结

    ### Java笔试题小结 #### 1. Java 字符串(String) **问题**: String 类的特点是什么?与 StringBuffer 的区别? **分析与解答**: `String` 类在 Java 中是不可变的,即一旦创建了一个字符串对象,其内容就不能...

    Java异常处理-自定义异常类及课后练习

    【Java异常处理-自定义异常类及课后练习】 在Java编程中,异常处理是程序健壮性的重要组成部分。Java提供了丰富的预定义异常类,但有时这些预定义的异常类并不能满足特定业务需求,这时就需要自定义异常类。自定义...

    java课程小结.rar_北京理工大学JAVA课程

    这个“java课程小结.rar_北京理工大学JAVA课程”压缩包中包含的“课程小结”文件,很可能是教授精心编写的教学精华,旨在帮助学生巩固所学知识并为后续学习打下坚实基础。 在Java课程中,有几个核心概念和技术是必...

    java开发经验小结

    在Java开发中,良好的编程习惯和高效的设计原则对于代码质量和性能至关重要。以下是一些从编码规范到性能优化的关键知识点: 1. **编码规范**:规范的编码习惯是提升代码可读性和可维护性的基础。保持充足的代码...

    java异常分类

    #### 四、小结 理解并正确处理Java中的异常对于编写健壮、可靠的应用程序至关重要。通过了解各种异常的特性和如何有效地捕获和处理异常,可以显著提高程序的质量和稳定性。希望本文介绍的几种常见的运行时异常能够...

    Java基础知识小结

    Java基础知识是每个Java开发者必须掌握的核心内容,涵盖了...以上只是Java基础知识的一部分,学习Java还需要掌握异常处理、IO流、多线程、网络编程、反射、设计模式等众多内容,不断深入理解才能成为熟练的Java开发者。

Global site tag (gtag.js) - Google Analytics