A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 洛克先生EN 中级黑马   /  2015-11-1 15:45  /  2893 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个方法a,请在这个方法中调用b,然后抛出异常。在客户端有一个类为TestC,有一个方法为c ,c是用于捕获异常的方法:

public class TestDemo{
    public static void main(String[] args) {
        TestC tc = new TestC();
        tc.c();
    }
}

class A{
    //调用b然后抛出异常,因为方法b抛出异常所以a也必须抛出异常
    public void a() throws Exception{
        B x = new B();
        x.b();
    }

}

class B{
    //抛异常的方法
    public void b ()throws Exception{
        System.out.println("我是方法b 抛出异常");
    }
}
//客户端:
class TestC{
    //用于捕捉异常的方法
    public static void c(){
        try{
            A y = new A();
            y.a();
        }catch(Exception ex){
            ex.printStackTrace();
            System.out.println("我是捕获异常的方法,"+ex.toString());
        }
    }
}


通过这个题我们总结下java中异常的特点以及处理异常的方式:
java中的异常分为“运行时异常”和“编译时异常”
运行时异常:是程序在运行的过程中所产生的异常,这个不是必须处理,是我们需要修正的
编译时异常:是程序在编译的过程中所产生的异常,这个我们必须处理
在java程序中,异常处理机制有两种,一种是“抛出异常”,一种是“捕获异常”,一种是“默认出来”
默认处理,他会把异常的名称,原因,位置等信息输出在控制台,但程序不会继续执行了
抛出异常:使用的关键字throws throw
  throws 用于在声明方法时抛出异常,只能是一个异常
  throw  用于抛出一个实际的异常,抛出一个具体异常对象,可以是多个异常。
捕获异常:try....catch...finally
  try{代码块}
      中间包含的代码块是可能出现异常的代码。
  catch{代码块}
      这个代码块是用来处理异常的代码
  finally{代码块}
      这个是异常处理后所需要执行的代码块。这个里面的代码块他总是会被执行,用于释放资源
需要注意的是:try不能单独使用,必须和catch或者finally两个中的一个一起使用

5 个回复

倒序浏览
此帖仅作者可见
使用道具 举报
韩文昊 来自手机 中级黑马 2015-11-1 18:41:31
藤椅
此帖仅作者可见
使用道具 举报
此帖仅作者可见
使用道具 举报
此帖仅作者可见
使用道具 举报
此帖仅作者可见
使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马