Java异常处理

原创 2015年07月07日 14:37:53
1、 认识Java中的异常
       异常就是程序中发生由于硬件设备问题,软件设计错误等导致程序异常事件,比如整数除0溢出、数组下标越界、指定数组长度为负、文件找不到等,这些事件的发生将阻止程序的正常运行,为了加强程序的健壮性,程序设计时,必须考虑到可能发生的异常事件并做出相应的处理。
       Java中一个方法运行过程中,如果发生异常,则这个方法生成代表该异常的一个对象,并把它交给运行时系统,运行时系统寻找相应的代码来处理这一异常;生成异常对象并把它交给运行时系统的这一过程为抛出异常(throw)。运行时系统在方法的调用栈中查找,从生成异常的方法开始进行回溯,直到找到包含相应异常处理的方法为止,这一过程称为异常捕获(catch)。
int a=8;
int b=0;
double c=a/b;//除数不能为0,java.lang.ArithmeticException: / by zero,
2、 Java中的异常处理类
       在Java类库的每个包中都定义了异常类,所有这些类都是java.lang.Throwable的子类,每个程序运行时都会自动引入java.lang包,故无需使用import语句导入它。Throwable类派生有两个子类Error和Exception。
       Exception:包含一般性的异常,这种异常可以被捕获处理,使用。常用的异常类如下:
       ArithmeticException:算术异常类         NullpointException:空指针异常(最常见的一种异常)
       ClassCastException:类型转换            ArrayIndexOutOfBoundsException:数组越界等等
3、 try、catch、finally
       try{
                需要被监测的代码;
            }catch(异常类型 变量){
                处理异常的代码(处理方式);
            }finally{
                必须执行的代码;
            }
       try:try语句块用来启动Java异常处理机制,对其内的程序代码进行检查。
       catch:每个try代码块可以伴随一个或多个catch语句,用于处理try代码块中所生成的异常事件,catch语句只需要一个形式参数指明它所能够捕获的异常类型,这个类必须是Throwable的子类。
       注意:捕获异常的顺序和catch语句的顺序有关,当捕获到一个异常时,剩下的catch语句就不再进行匹配。因此在安排catch语句的顺序时,首先应该捕获最特殊的异常,然后再逐渐一般化,也就是说一般先捕获子类,再捕获父类。
       finally:捕获异常的最后一步是通过finally语句为异常处理提供一个统一的出口,不论在try代码块中是否发生了异常事件,finally中的语句都会被执行
4、 throws和throw
       throws:
       如果在一个方法中生成了一个异常,但是这一方法并不知道如何对这个异常进行处理,这时,方法 就应该声明抛出异常,使得异常可以从调用栈向后传播,直到有合适的方法处理。声明抛出异常是在一个方法的声明中使用throws子句指明的。例如;
public int read() throws IOException{

}//throws子句中同时可以指明多个异常,之间用逗号隔开。
       throw:
       在方法中,抛出异常对象是通过throw语句实现的。例如:
IOException e=new IOException();
throw e;//可以抛出的异常必须是Throwable或其子类的实例。
5、 自定义异常类
       自定义异常类必须是Throwable的直接或间接子类。
       手动通过throw关键字,在有可能出异常的地方抛出自定义异常类的对象,如“throw new 自定义Exception(异常信息);”。
        因为父类中已经把异常信息的操作都完成了,所以子类只要在构造时将异常信息通过super语句传递给父类。
        那么就可以直接通过getMessage方法获取自定义的异常信息。
        必须是自定义类继承Exception:异常体系有一个特点,异常类和异常对象都需要被抛出,且具有可抛性。
        可抛性是Throwable这个体系中独有的特点,只有这个体系中的类和对象才可以被throws和throw操作。




java基础关于异常处理方式

  • 2016年08月20日 09:42
  • 13.49MB
  • 下载

java异常处理

  • 2014年12月13日 20:18
  • 124KB
  • 下载

Java的异常处理练习题

一、选择题 1、java中用来抛出异常的关键字是( ) A.try      B.catch    C.throw          D.finally   2、关于异常,下列说法正确的是( ...

java,访问异常处理方法

  • 2014年12月16日 16:43
  • 963B
  • 下载

java异常处理

  • 2013年08月09日 11:44
  • 2KB
  • 下载

java 详解异常处理原理

一、Java异常处理机制的优点 在一些传统的编程语言,如C语言中,并没有专门处理异常的机制,程序员通常用方法的特定返回值来表示异常情况,并且程序的正常流程和异常流程都采用同样的流程控制语句。 ...

java异常处理

  • 2013年12月30日 22:16
  • 79KB
  • 下载

C++ Java异常处理比较

  • 2014年06月21日 21:12
  • 21KB
  • 下载

深入理解java异常处理机制

1. 引子        try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中...
  • hguisu
  • hguisu
  • 2011年01月20日 18:44
  • 288819

6.尚硅谷_java基础_异常处理

  • 2013年08月29日 12:01
  • 788KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java异常处理
举报原因:
原因补充:

(最多只允许输入30个字)