`
天空之城
  • 浏览: 402892 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于异常的总结【一】

    博客分类:
  • Java
阅读更多

Java中采用了强制异常捕捉机制,这样一方面提高了程序的可靠性,不过有时候也带来一些麻烦。比如: int i= Integer.parseInt("33");这个我知道它不可能会抛出异常,但是不捕捉异常的话就过不了编译这关,当然这个代码没有意义的。

Java中所有异常或者错误都继承Throwable,我们把它分为三类吧:
1.Error:所有都继承自Error,表示致命的错误,比如内存不够,字节码不合法等。
2.Exception:这个属于应用程序级别的异常,这类异常必须捕捉。
3.RuntimeException:奇怪RuntimeException继承了Exception,而不是直接继Error,  这个表示系统异常,比较严重。

Error我们很少遇到,但是并不是说Error就一定非常致命,举个例子,NoSuchMethodError表示没有这个方法,你调用的方法不存在,你一定觉得奇怪,不存在怎么编译的过去呀?很简单的,你先编译好一个被调用的类A,给一个方法。然后在你的程序调用它,编译没问题,运行也没问题。现在再把A类中这个方法去掉,重新编译一遍,你再运行你的程序就知道错误是怎么回事了。
Exception不用说,我们要自己捕捉。
RuntimeException可以说见的最多了,下面我们说明一下常见的RuntimeException:

NullPointerException:见的最多了,其实很简单,一般都是在null对象上调用方法了。
String s=null;
boolean eq=s.equals(""); // NullPointerException
这里你看的非常明白了,为什么一到程序中就晕呢?
public int getNumber(String str){
  if(str.equals("A")) return 1;
   else if(str.equals("B")) return 2;
}
这个方法就有可能抛出NullPointerException,我建议你主动抛出异常,因为代码一多,你可能又晕了。
public int getNumber(String str){
  if(str==null) throw new NullPointerException("参数不能为空");
                                   //你是否觉得明白多了
  if(str.equals("A")) return 1;
   else if(str.equals("B")) return 2;
}

NumberFormatException:继承IllegalArgumentException,字符串转换为数字时。
比如int i= Integer.parseInt("ab3");

ArrayIndexOutOfBoundsException:数组越界
比如 int[] a=new int[3]; int b=a[3];

StringIndexOutOfBoundsException:字符串越界
比如 String s="hello"; char c=s.chatAt(6);

ClassCastException:类型转换错误
比如 Object obj=new Object(); String s=(String)obj;

UnsupportedOperationException:该操作不被支持,如果我们希望不支持这个方法,可以抛出这个异常。既然不支持还要这个干吗?有可能子类中不想支持父类中有的方法,可以直接抛出这个异常。

ArithmeticException:算术错误,典型的就是0作为除数的时候。

IllegalArgumentException:非法参数,在把字符串转换成数字的时候经常出现的一个异常,我们可以在自己的程序中好好利用这个异常。

这些异常一看到名字就知道是怎么回事了,其实只要理解了java的异常处理机制,这些都不是问题


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dracularking/archive/2008/04/16/2298166.aspx

分享到:
评论

相关推荐

    java异常总结

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

    Java异常处理总结

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

    axis2常见异常总结

    Axis2 常见异常总结 Axis2 是一个流行的WebService框架,它提供了许多功能强大且灵活的特性。然而,在实际使用中,我们经常会遇到各种异常问题。下面我们将总结 Axis2 中的一些常见异常问题及其解决方法。 1. Jar ...

    C#异常处理总结及简单实例

    C#异常处理总结及简单实例 一、异常处理的理解? 异常处理是指程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做异常。 因此处理这种错误,就称为异常处理。 二、异常处理如何操作? C# 异常处理时建立在...

    C++异常处理总结

    C++异常处理总结 C++语言提供了异常处理机制,用于处理程序中的错误和异常情况。异常处理机制可以使程序结构更清晰、更健壮,并且可以防止程序崩溃。下面是C++异常处理机制的核心要点: 1. 如果使用普通的处理方式...

    异常处理机制知识点小总结

    异常处理是Java编程中至关重要的一个概念,它确保了程序在遇到错误或异常情况时能够以优雅的方式继续执行或者终止。下面是对Java异常处理机制的详细解析。 在Java中,异常是程序运行时发生的错误,它中断了正常的...

    java常见异常总结

    ### Java常见异常总结 在Java开发过程中,遇到各种异常是在所难免的。为了更好地理解和处理这些异常,本文将详细介绍几种常见的Java异常类型及其处理方法。 #### 1. `java.lang.NullPointerException` - **异常...

    J2SE中流 ,异常 的个人总结

    本总结主要聚焦于J2SE中的"流"和"异常"两个关键概念,这两个概念对于任何Java开发者来说都至关重要。 一、Java流(Stream) Java流是用来处理数据的抽象概念,它代表了数据的源或目标。流可以用来读取或写入数据,...

    CORBA异常总结.pdf

    ### CORBA异常总结 CORBA(Common Object Request Broker Architecture,通用对象请求代理系统)是一种用于分布式计算环境中的标准,旨在让不同操作系统上的应用程序能够相互通信。CORBA规范定义了一系列异常,这些...

    Java常见异常总结

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

    SSH异常总结

    SSH 异常总结是一篇总结了多种 SSH 异常的文章,涵盖了持久性异常、数据库连接异常、外键约束异常、数据截断异常等多种类型的异常。这篇文章通过实践经验总结了这些异常的解决方案,旨在帮助开发者更好地理解和解决...

    socket通信异常解决总结

    Socket 通信异常解决总结 Socket 通信异常是指在网络通信过程中出现的各种错误和异常,包括网络连接断开、服务器端或客户端程序异常、网络链路异常等。这些异常会导致 Socket 连接断开,影响系统的稳定性和可靠性。...

    jsp常见异常总结 希望有所帮助

    **JSP(Java Server Pages)常见异常总结** 在开发基于JSP的应用程序时,开发者经常会遇到各种异常。这些异常可能是由于语法错误、运行时问题、配置错误或是与服务器交互过程中的其他问题引起的。理解并有效地处理...

    异常总结

    异常总结主要涵盖了编程中可能出现的问题以及如何有效地管理和解决这些异常。在本文中,我们将深入探讨异常的基本概念、常见的异常类型、异常处理机制以及源码中异常处理的最佳实践。 1. 异常的基本概念: 异常是...

    java异常学习总结

    ### Java异常学习总结 #### 一、Java异常概述与分类 在Java开发中,异常处理是确保程序稳定性和健壮性的关键部分。本篇总结了Java异常的基本概念、分类及处理方式等内容,对于从事Java开发的技术人员具有重要的...

    常见JAVA异常总结

    ### 常见JAVA异常总结 #### 1. `java.lang.NullPointerException` `java.lang.NullPointerException` 是一种运行时异常,表示程序试图在需要对象的地方使用了 `null`。例如,通过对 `null` 引用调用实例方法或访问...

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

    2. **异常链机制**:当一个异常被捕获后,仍需记录原始异常,以保留完整的异常信息。Java提供了Throwable类的initCause()方法来实现异常链。 3. **日志记录**:在捕获异常时,记录详细的异常信息,包括堆栈跟踪,这...

Global site tag (gtag.js) - Google Analytics