`
C_SHaDow
  • 浏览: 51643 次
  • 性别: Icon_minigender_1
  • 来自: 大同
社区版块
存档分类
最新评论

java中错误与异常的总结

阅读更多

错误与异常的继承体系

这里是对java中错误与异常的总结。

 

Exception类是Java中的异常类,它继承了java.lang包下的Throwable类,它本身之下也有庞大的继承体系,稍后做详细说明。Error也继承了java.lang包下的Throwable类,其实二者的区别在本人理解看来就是Exception是可挽回的,而Error则是fatal的,只是程度上的区别。为什么有理由这么说呢?jdk中有一例AWTException和AWTError,这不是很奇怪吗?

 

那么Throwable里的东东怎么去用呢?第一反应可能是try{}catch(Throwable e){};或者给那个方法直接throws一个某某Throwable的实现子类;再或者看某某种情况是程序所不期待的,就throw一个异常类实例(一般由于Error是致命的,所以程序员没有“义务”,也不必拉么“无聊”去处理一个Error)。

 

这里说明一下Exception。一般异常可分为两种:运行时异常即RuntimeException(运行时异常);强制异常(就是在编译前就应该由程序员处理的异常)。

 

现列举几个常见的错误及异常:

 

上面提到的AWTError是当发生严重的 Abstract Window Toolkit 错误时,抛出此错误。这个名字看着很恐怖,我当时

第一眼没看出来,定睛一瞧才发现就是平时使用的java.awt包啊!呵呵……

 

接着看看另一个Error:ThreadDeath。jdk中描述:调用 Thread 类中带有零参数的 stop 方法时,受害线程将抛出一个

ThreadDeath 实例。 仅当应用程序在被异步终止后必须清除时才应该捕获这个类的实例。如果 ThreadDeath 被一个方法捕获,那么将它重新抛出非常重要,因为这样才能让该线程真正终止。 如果没有捕获 ThreadDeath,则顶级错误处理程序不会输出消息。

 

虽然 ThreadDeath 类是“正常出现”的,但它只能是 Error 的子类而不是 Exception 的子类,因为许多应用程序捕获所有出现的 Exception,然后又将其放弃。

 

虽然Thread.stop()已经是一个过时的方法,但ThreadDeath告诉我们有些东西是“正常出现”的,但却定义为Error。

 

接下来是两个比较常见的Error:OutOfMemoryError和StackOverflowError。它们都是java.lang包下VirtualMachineError的子类。前者在Java 虚拟机因内存溢出或没有可用的内存提供给垃圾回收器而无法分配一个对象时抛

出;后者是当应用程序递归太深而发生堆栈溢出时抛出。对于Exception,先说说刚才那个AWTExcption。在调用java.awt包下的某些方法时会抛出AWTExcption异常。详见

http://www.vifir.com/projectdoc/jdk16/java/awt/class-use/AWTException.html

 

有一些异常是比较常见的,如:DataFormatException(数据格式异常)、FontFormatException(字体格式异常)。这两个异常在JFC中都是没有子类的,比较简单。还有一些Exception的字类本身还有很多自类,如IOException就有比较庞大的继承体系。

 

不过,以上提到的异常均为强制异常。Exception类有一个子类比较特别,它是RuntimeException。运行时异常有一些子类中常见的有NullPointerException(空指针异常)、EmptyStackException(栈为空异常)、IndexOutOfBoundException(数组越界异常)等等。

 

通过对错误与异常的总结,我本人不仅对Throwable类有个总括的认识,也终于发现java中继承体系之庞大。555...

分享到:
评论
3 楼 为爱Debug 2010-05-20  
依稀记得,以前为了考试背过!呵呵
2 楼 optimism_best 2010-05-20  
楼主,你的样子吓到我了,阿门!
1 楼 javafound 2010-04-13  
  比较细致,呵呵,

相关推荐

    java异常总结

    ### Java异常总结 #### 一、Java异常概述 在Java编程语言中,异常处理机制是一项非常重要的特性。它提供了一种方法来响应错误条件,并且能够有效地管理程序运行时可能出现的各种异常情况。Java中的异常主要分为两...

    Java异常处理总结

    ### Java异常处理总结 #### 一、Java异常的基础知识 在Java编程中,异常处理是一项极其重要的技术。异常处理能够帮助开发者优雅地处理程序运行时遇到的问题,避免程序崩溃,并提供给用户友好的反馈信息。 **什么...

    Java常见异常和错误总结

    以上总结了Java编程中常见的异常和错误类型,以及如何识别和处理这些问题。对于开发者而言,理解这些异常的含义及其解决方法至关重要,这不仅能帮助提高代码质量,还能增强程序的健壮性和稳定性。

    java异常处理习题

    Java 异常处理是 Java 编程语言中的一种重要机制,用于处理程序在运行时可能出现的错误或异常情况。下面是关于 Java 异常处理的习题和知识点总结: 一、Java 异常处理关键字 * Java 中用来抛出异常的关键字是 `...

    java常见异常总结

    ### Java常见异常总结 在Java开发过程中,异常处理是一项重要的技术。合理的异常处理不仅可以提高程序的健壮性,还能帮助开发者快速定位问题所在。本文将详细介绍一些常见的Java异常及其发生场景,帮助读者更好地...

    JAVA中常见的异常

    ### JAVA中常见的异常知识点详解 #### 一、`java.lang.NullPointerException` 在Java编程中,`java.lang.NullPointerException`(简称NPE)是最常见的异常之一。这种异常通常发生在尝试访问一个空对象引用的方法或...

    java实验报告4-异常处理

    Java异常处理是编程中至关重要的一个环节,它确保了程序在遇到错误时能够优雅地运行,而不是突然崩溃。本实验报告“java实验报告4-异常处理”旨在帮助初学者掌握Java中的异常处理机制,以及如何利用log4j进行日志...

    java程序中的异常处理

    在Java编程中,异常处理是一种用于处理程序运行过程中可能出现的错误或意外情况的重要机制。它可以帮助开发者更好地控制程序流,确保程序即使在遇到错误的情况下也能优雅地进行处理或者终止。 #### 核心概念解析 1...

    java中十大异常(自总结)

    程序中的突发状况一般有2种:异常、错误 今天分享的是java中的十大异常

    Java基础编程异常总结

    ### Java基础编程异常总结 #### 1. 使用`java`或`javac`工具时报错:“`'javac.exe'`不是内部或外部命令,也不是可运行的程序或批处理文件。” - **问题描述**:当尝试使用`javac`命令进行Java文件编译时,系统...

    Java中常见异常类型及分析.pdf

    在Java编程中,异常处理是一项重要的技术,它有助于开发者在程序运行过程中及时发现并处理错误,确保程序的稳定性和健壮性。Java语言中提供了丰富的异常处理机制,包括异常的抛出、捕获和处理。本文将详细介绍几种...

    Java常见异常总结

    ### Java常见异常总结 在Java编程中,遇到异常是家常便饭,它们是程序运行过程中出现错误的信号。为了帮助开发者更好地理解和处理这些异常,本文将深入探讨一系列常见的Java异常,涵盖从基本的`ArithmeticException...

    java中常见的异常类型

    - **描述**:算术运算错误异常,最常见的是除以零的操作。 - **示例**:尝试执行`int result = 10 / 0;`时,会抛出此异常。 3. **ArrayIndexOutOfBoundsException** - **描述**:数组下标越界异常,当访问数组...

    Java 异常处理的误区和经验总结

    在Java编程中,异常处理是确保程序健壮性与稳定性的重要环节。然而,许多开发者在实际操作中常常陷入一些常见的异常处理误区,这不仅可能导致程序的错误难以追踪,还可能影响程序性能。以下是对Java异常处理的一些...

    总结java的30个异常及方案

    Java异常处理是编程中至关重要的一个环节,它帮助开发者在程序出错时捕获并处理错误,确保程序的健壮性和稳定性。以下是关于Java异常处理的一些关键知识点,以及针对30个常见Java异常的解决方案: 1. **异常体系**...

    java 异常框架CODE

    Java异常框架是Java编程语言中处理程序运行时错误和异常的核心机制。在Java中,异常是一种特殊的对象,用于表示程序运行过程中的不正常状态。Java的异常处理模型基于\"异常处理块\",包括try、catch、finally和throw...

    java异常处理机制示例(java抛出异常、捕获、断言)

    Java异常处理机制是Java编程中不可或缺的一部分,它用于处理程序运行过程中可能出现的错误或异常情况。这个机制通过五个关键字:try、catch、throw、throws、finally来实现。 1. **try** 关键字:用于包围可能抛出...

Global site tag (gtag.js) - Google Analytics