有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个方法a,请在这个方法中调用b,然后抛出异常。在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕捉异常的信息。完成这个例子,请说出java中针对异常的处理机制。
[java] view plaincopy
- package com.itheima;
- import java.io.IOException;
- /**
- *第6题:有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,
- *此方法抛出异常,在ClassA类中有一个方法a,请在这个方法中调用b,然后抛出异常。
- *在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕捉异常的信息。
- *完成这个例子,请说出java中针对异常的处理机制。
- *
- *java中的异常分为“运行时异常”和“编译时异常”
- *运行时异常:是程序在运行的过程中所产生的异常,这个不是必须处理,是我们需要修正的
- *编译时异常:是程序在编译的过程中所产生的异常,这个我们必须处理
- *在java程序中,异常处理机制有两种,一种是“抛出异常”,一种是“捕获异常”,一种是“默认出来”
- *默认处理,他会把异常的名称,原因,位置等信息输出在控制台,但程序不会继续执行了
- *抛出异常:使用的关键字throws throw
- * throws 用于在声明方法时抛出异常,只能是一个异常
- * throw 用于抛出一个实际的异常,抛出一个具体异常对象,可以是多个异常。
- *捕获异常:try....catch...finally
- * try{代码块}
- * 中间包含的代码块是可能出现异常的代码。
- * catch{代码块}
- * 这个代码块是用来处理异常的代码
- * finally{代码块}
- * 这个是异常处理后所需要执行的代码块。这个里面的代码块他总是会被执行,用于释放资源
- *注意:try不能单独使用,必须和catch或者finally两个中的一个一起使用
- */
- public class Test6 {
- public static void main(String[] args) throws Exception {
- // 创建tc对象
- TestC tc = new TestC();
- // 使用tc调用c方法,运行这个类
- tc.c();
- // A a = new A();
- // a.a();
- }
- }
- //A类
- class A{
- // 创建一个a方法,在a方法中创建b对象,通过b对象调用b方法,因为b对象抛出了异常,所以在a方法中也要抛出异常
- public void a() throws Exception{
- B b = new B();
- b.b();
- }
- }
- //B类
- class B {
- // 创建一个b方法,并抛出异常
- public void b() throws Exception{
- System.out.println("我是B类中的b方法,我抛出异常!");
- }
- }
- //客户端类
- class TestC{
- public void c() {
- // 创建一个A对象
- A a = new A();
- // 调用A对象中的a方法,此时因为A方法中抛出了异常,所以这了必须处理,使用try...catch处理
- try {
- a.a();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- System.out.println("我是捕获异常方法,"+e.toString());
- }
- }
- }
时间: 2024-10-15 11:20:12