Java异常处理机制

Java异常处理机制java

  软件程序在运行过程当中,很是可能遇到刚刚提到的这些问题,咱们称之为异常,英文是:Exception。在Java的异常处理机制中,引进了不少用来描述和处理异常的类,称为异常类。异常类定义中包含了该类异常的信息和对异常进行处理的方法。 所谓异常处理,就是指程序在出现问题时依然能够正确的执行完。
Java是采用面向对象的方式来处理异常的。处理过程:
1. 抛出异常:在执行一个方法时,若是发生异常,则这个方法生成表明该异常的一个对象,中止当前执行路径,并把异常对象提交给JRE。
2. 捕获异常:JRE获得该异常后,寻找相应的代码来处理该异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常处理代码为止。
常见的异常:
1:ArithmeticException 数学异常,被0除
2:InputMismatchException 输入类型不匹配异常 
3:java.lang.ArrayIndexOutOfBoundsException:数组下标越界异常。
4:java.io.IOException : javaIO 异常。
5:java.lang.NullPointerException:空指针异常,使用了还没有初始化的对象。
异常的分类:

Error
Error是程序没法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操做无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。
编程

Exception
Exception是程序自己可以处理的异常,如:空指针异常(NullPointerException)、数组下标越界异常(ArrayIndexOutOfBoundsException)、类型转换异常(ClassCastException)、算术异常(ArithmeticException)等。
Exception类是全部异常类的父类,其子类对应了各类各样可能出现的异常事件:Java异常可分为:
1. RuntimeException 运行时异常  
2. CheckedException 已检查异常

RuntimeException运行时异常
这类异常一般是由编程错误致使的,因此在编写程序时,并不要求必须使用异常处理机制来处理这类异常,常常须要经过增长“逻辑处理来避免这些异常”。
空指针异常:


解决空指针异常:

数组角标越界异常:
数组

CheckedException已检查异常
  全部不是RuntimeException的异常,统称为Checked Exception,又被称为“已检查异常”,如IOException、SQLException等以及用户自定义的Exception异常。 这类异常在编译时就必须作出处理,不然没法经过编译.

异常处理方式:常的处理方式有两种:使用“try/catch”捕获异常、使用“throws”声明异常。
异常的处理方式之一:捕获异常
     捕获异常是经过3个关键词来实现的:try-catch-finally。用try来执行一段程序,若是出现异常,系统抛出一个异常,能够经过它的类型来捕捉(catch)并处理它,最后一步是经过finally语句为异常处理提供一个统一的出口,finally所指定的代码都要被执行(catch语句可有多条;finally语句最多只能有一条,根据本身的须要无关紧要)。
注意点:
一、一个try语句必须带有至少一个catch语句块或一个finally语句块,当异常处理的代码执行结束之后,不会回到try语句去执行还没有执行的代码。
二、每一个try语句块能够伴随一个或多个catch语句,用于处理可能产生的不一样类型的异常对象。
三、不论是否发生了异常,即便try和catch块中存在return语句,finally都必需要执行
四、finally语句块只有一种状况是不会执行的,那就是在执行finally以前遇到了System.exit(0)结束程序运行。
异常的处理方式之二:声明异常(throws子句)
当CheckedException产生时,不必定马上处理它,能够再把异常throws出去。若是一个方法抛出多个已检查异常,就必须在方法的首部列出全部的异常,之间以逗号隔开。
throw:
1:只能用于方法体内。
2:后面跟异常对象。
3:只能跟一个异常对象
throws:
1:用在方法的声明处。参数列表的后面方法体的前面。
2:后面跟异常的类型。
3:能够跟多个异常类型。使用 逗号 分隔。
spa

相关文章
相关标签/搜索