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 异常:程序在设计时或运行时产生的错误 2 异常处理:处理异常的过程,异常被处理后,异常就不存在了,程序就可以继续运行了。如果异常不被处理,程序就会被强行终止 3 异常的体...

java,访问异常处理方法

  • 2014-12-16 16:43
  • 963B
  • 下载

java异常处理

JAVA异常处理机制(基础知识)

一、异常概述        世界上最真情的相依,是你在try我在catch,无论你发神马脾气,我都默默接受,静静处理。        现在让我们来谈谈JAVA中的异常,嘻嘻。。。      ...

java异常处理

  • 2013-12-30 22:16
  • 78KB
  • 下载

C++ Java异常处理比较

  • 2014-06-21 21:12
  • 21KB
  • 下载

java关于异常处理只使用try-finally而不使用catch

1. 前言:通常我们在异常处理的时候一般就使用try…catch,try { // 需要处理的代码段 } catch(Exception e) { // 异常处理方法 } 更加好一些的...
  • Ink4T
  • Ink4T
  • 2017-08-07 23:32
  • 4676
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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