黑马程序员技术交流社区
标题:
创建三个类,其中一个类捕获其他两个类的异常并抛出
[打印本页]
作者:
SmallRooker
时间:
2014-8-27 23:05
标题:
创建三个类,其中一个类捕获其他两个类的异常并抛出
package com.itheima;
public class Test6 {
/**
* 6、 有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,
* 在ClassA类中有一个方法a,请在这个方法中调用b,然后抛出异常。在客户端有一个类为TestC, 有一个方法为c
* ,请在这个方法中捕捉异常的信息。完成这个例子,请说出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异常则无需处理。
*
* Checked异常可以提醒程序员需要处理所有可能发生的异常,但Checked异常也带来一些繁琐之。
*
* 对于错误处理机制,主要有如下的两个缺点:
*
* 1.无法穷举所有异常情况:因为人类的知识是有限的,异常情况总比可以考虑到的情况多,总有漏网之鱼
*
* 2.错误处理代码和业务实现代码混杂严重影响程序的可读性,会增加程序维护的难度。
*
* java的异常处理机制:实现将“业务功能代码”和“错误处理代码”的分离!
*
* */
public static void main(String[] args) {
//创建一个c类的对象,然后调用类的方法,输出捕获的异常
ClassC c = new ClassC();
c.methodC();
}
}
class ClassA
{
public static void methodA()throws Exception
//抛出异常 这就是说有问题了,methodA不管,methodA把问题扔给调用methodA的地方
{
ClassB.methodB();
}
}
class ClassB
{
public static void methodB() throws Exception
{
// .....一些什么
throw new Exception(" throw by ClassB.methodB ");
}
// 或则,methodB和methodA一样
public static void methodB2() throws Exception
//抛出异常 这就是说有问题了,methodA不管,methodA把问题扔给调用methodA的地方
{
// ....
这里有异常,程序会跳到methodB2() throw Exception,然后结束
//....
}
}
class ClassC
{
public static void methodC()
{
try {
//或ClassA.methodA();
ClassB.methodB();
}
// 捕捉异常的信息
// 这个就是说,如果出了问题,就来这里(catch)
catch(Exception e) {
// 处理问题了。
System.out.println(e.toString());
}
}
}
作者:
八零、玖羚
时间:
2014-8-27 23:57
学习了,顶起
作者:
黑马黄武先
时间:
2014-8-28 01:25
看不懂,顶起
作者:
liaorubei
时间:
2014-9-25 16:23
可不可以专业一点,一点都看不懂啊,注释写得那么乱啊.
作者:
yanghao
时间:
2014-9-26 17:27
这是入学题目吗
作者:
yy505032788
时间:
2014-12-22 23:00
马克了走起
作者:
小罗同学
时间:
2015-5-18 16:39
八零、玖羚 发表于 2014-8-27 23:57
学习了,顶起
很是不错
作者:
xiaoqiao
时间:
2015-6-8 10:53
好吧!入学测试题原来都是这样的吗?
作者:
xiaoxinxin003
时间:
2015-7-16 00:56
一个客户端把我搞蒙了
作者:
yuchun
时间:
2015-8-4 20:53
赞一个。。。
作者:
liuwuzhou
时间:
2015-9-11 12:02
很感谢大侠的分享
作者:
小海龙
时间:
2016-4-12 23:05
入学的题,学习了,多谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2