【第22期】观点:IT 行业加班,到底有没有价值?

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的语言异常处理

标签: java 异常处理机制 任何计算机程序设计语言都包括绝对正确的语句和相对正确的语句,绝对正确的语句在任何时候都能正确执行,但相对正确的语句只有在条件成立时,才能正确执行。比如除运算的分母不...

解析Java异常处理机制

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

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

Java SE Primer——异常处理 你应该知道的一切

Java异常机制使异常处理代码和正常业务代码分离,让程序有更好的容错性、更加健壮。目前主流编程语言如C++、C#、Ruby、Python等都提供了异常处理机制。Javc异常主要依赖于try、catch...

Java异常处理

本文主要介绍Java异常处理机制以及Java中异常处理的一些方式,以及各种异常处理的情况。 异常处理在保证程序的健壮性起着重要作用,同时帮助程序员理解任务代码与错误检查代码。

java异常处理之try...catch...finally详解

异常处理机制已经成为判断一门编程语言是否成熟的标准之一,其对代码的健壮性有很大影响。一直以来异常处理使用不是很得心应手,今天对异常进行了较为深入的学习,这篇主要是对try…catch…finally的...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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