- package com.itheima;
- /**
- * 第8题:有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个方法a,请在这个方法中调用b
- * ,然后抛出异常。在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕捉异常的信息。完成这个例子,请说出java中针对异常的处理机制。
- *
- * @author hp-pc
- * */
- /*
- * java针对异常处理的机制:
- *
- * java中的异常处理机制主要依赖于try,catch,finally,throw和throws五个关键字。
- * 其中try关键字后边紧跟的用花括号括起来的代码块叫try代码块,里面放置可能发生异常的代码。
- * catch后对应异常类型和一个代码块,用于表明该catch块是用于处理这种异常类型的代码块。
- * 多个catch块后边还可以跟一个finally块,finally块用于回收在try块里打开的物理资源,
- * 异常机制保证finally块总会被执行。
- *
- * throws关键字主要在方法签名中使用,用于该方法可能抛出的异常
- * throw用于抛出一个实际的异常,throw可以单独作为语句使用,抛出一个具体的异常对象
- *
- * java异常分为两种:
- * Checked异常和Runtime异常
- * java认为Checked异常都是在编译阶段可以被处理的异常,所以它强制处理所有的Checked异常。
- * 而Runtime异常则无需处理
- * */
- class ClassA
- {
- // 抛出异常,这就是说有问题了,A把问题扔给调用者
- public static void a() throws Exception
- {
- ClassB.b();
- }
- }
- class ClassB
- {
- public static void b() throws Exception
- {
- //在方法内部抛出异常
- throw new Exception("throw by ClassB.b()");
- }
- }
- class TestC
- {
- public static void c()
- {
- try
- {
- ClassA.a();
- }
- catch (Exception e)//捕获异常
- {
- //e.printStackTrace();
- //打印异常信息
- //捕获的异常信息:java.lang.Exception: throw by ClassB.b()
- System.out.println(e.toString());
- }
- }
- }
- public class Test8
- {
- public static void main(String[] args)
- {
- TestC.c();
- }
- }
复制代码 |
|