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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 原子弹 中级黑马   /  2014-3-28 16:54  /  1870 人查看  /  3 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,
         * 在ClassA类中有一个方法a,请在这个方法中调用b,然后抛出异常。
         * 在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕捉异常的信息。
         * 完成这个例子,请说出java中针对异常的处理机制。

求大神指点

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

3 个回复

倒序浏览
异常处理:
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的异常处理机制:实现将“业务功能代码”和“错误处理代码”的分离!
1.使用try...catch捕获异常
java提出了一种假设,如果程序可以顺利完成,那么一切正常,把系统的业务实现代码放在try块中定义,所有的异常处理逻辑放在catch块中进行处理。
即:try{
//业务实现代码
...
}
catch(Exception e){
输入不合法
}
上面的格式中try块和catch块后的{...}都是不可以省略的!
package com.itheima;
/**
* @author Leslie
*
*/
public class Test7 {
/**
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  TestC.c();
}

}
class ClassA{
public static void a()throws Exception{   //抛出异常  这就是说有问题了,A不管,A把问题扔给调用A的地方
  ClassB.b();
  System.out.println("ClassA");
}
}
class ClassB{
public static void b()throws Exception{
  //System.out.println("ClassB");
  throw new Exception("ClassB");
}
}
class TestC{
public static void c(){
  try {  //  捕获异常 这个就是说,如果出了问题,就来这里catch()
   ClassA.a();
  } catch (Exception e) {
   // TODO: handle exception
   e.toString();
  }
}
}

评分

参与人数 1技术分 +2 收起 理由
朱神必 + 2

查看全部评分

回复 使用道具 举报
给力,写的真好
回复 使用道具 举报
男人你得有范 来自手机 中级黑马 2014-8-24 13:54:59
板凳
不错不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马