码迷,mamicode.com
首页 > 编程语言 > 详细

java异常处理

时间:2015-12-09 13:57:14      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:

异常:指程序出现了不正常的情况

程序的异常分类:Throwable

  严重问题:Error

  问题:Exception

    编译时异常:不是RuntimeException的异常,必须处理,不处理编译就不能通过

    运行时异常:RuntimeException,不处理,原因是代码不够严谨,需要修改代码

异常的处理:

如果程序出现了问题,我们没有做出处理,最终jvm会做出默认的处理,把异常的名称,原因及出现的问题输出到控制台。

我们自己处理:1、try...catch...finally      2、throws

1、try...catch...finally

try{
  //可能出现问题的代码
}catch(Exception e){
  //针对异常的处理
}catch(Exception e){
  //针对异常的处理
}finally{
  //释放资源
}

如出现既有子类异常类,又有父类异常类,父类异常必须放在最后一个catch当中。一旦try里面的代码出现问题,jvm就会生成一个异常对象,然后将对象抛出,与catch里面的异常进行匹配。

异常中的几个方法:

String getMessage() :异常的消息字符串

String toString():异常的简单信息描述

void printStackTrace():获取异常类名和异常信息,以及异常出现的位置,把信息输出到控制台。

2、throws

有些时候我们没有权限去处理异常,或者处理不了,就不处理了,由调用者自行处理。这时可以用throws将异常抛出,throws必须写在方法的括号后面。

格式:throws  异常类名1, 异常类名2

    public void method()throws Exception{
        //执行代码
    }

调用该方法时,必须对异常进行处理,可以用try...catch处理。

3、throws和throw的区别

throws:

  • 用在方法声明后面,跟的是异常类名
  • 可以跟多个类名,用逗号隔开
  • 表示抛出异常,有该方法的调用者来处理
  • throws表示一种异常的可能性,并不一定出现异常

throw:

  • 用在方法体内,跟的是异常对象
  • 只能跟一个异常对象
  • 表示抛出异常,有方法体内的语句进行处理
  • throw表示抛出异常,执行throw表示一定抛出了某种异常

4、异常处理的原则:

如果该功能内可以对问题进行处理,就用try,如果处理不了就用throws,交由调用者处理 

区别:后面程序需要继续运行就用try

   后面程序不需要继续运行就用throws 

5、finally

被finally控制的语句一定会执行,但是特殊情况下:如果在finally执行之前,jvm退出了,将不能执行

作用:用于释放资源

6、自定义异常类

自定义异常类必须继承Exception类或者RuntimeException类,通常还会有两个构造函数

public class MyException extends Exception {
    public MyException(){}
    public MyException(String message){
        super(message);
    }
}

7、异常注意事项

子类重写父类方法时,子类必须抛出相同的异常或父类异常的子异常

如果父类抛出多个异常,子类重写父类是,只能抛出相同异常或是他的子集,不能抛出父类没有的异常

如果父类没有抛出异常,子类方法绝不能抛出异常,若子类有异常需要处理,只能用try,不能用throws

 

java异常处理

标签:

原文地址:http://www.cnblogs.com/liujufu/p/5032507.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!