黑马程序员技术交流社区
标题:
java中的异常处理机制
[打印本页]
作者:
男人你得有范
时间:
2014-8-24 19:39
标题:
java中的异常处理机制
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();
}
}
复制代码
作者:
ximi
时间:
2014-8-24 19:59
有时我们可以利用异常控制流程的走向,比如传递的参数为空,我也可以抛出异常,告诉调用,空的可以不行哦!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2