日期:2014-05-20  浏览次数:20720 次

java异常类
比如我编写了一个函数 他会抛出异常 (没有学生异常、没有老师异常)
  比如 public void OnClass() throws NoStudentException,NoTecherException{
   
  //NoStudentException,NoTecherException 这两个是两个类 分别继承自Exception  
  //我不知道这样 何不合理 如果不合理 请给出批评意见 谢谢~
   

  }

然后在主函数中 调用这个方法时用try catch 包围
   

  try{
  OnClass();
  }catch( NoStudentException e) {
   
  e.printStackTrace();
  }catch(NoTecherException e){
  e.printStackTrace();
   
  }
   

  这样是不是他只会 执行一个catch里面的语句而不会都执行? 为什么
  假如是这样,那怎么办? 因为很可能这个教室里既没有老师,也没有学生啊?
  而且我在网上也看到了有两个catch语句的例子 而且引数类型 是不相关的、同等地位的,并不存在互相继承的 关系。。。


能详细的讲讲么??谢谢啦~

------解决方案--------------------
一般catch的原则是捕获子类再捕获父类,如没有子父类继续关系分别捕获就行了(当然会都执行了)
------解决方案--------------------
按LZ的思路是不能同时捕获两个异常的.当出现异常时程序就跳到处理段去了,后面的程序也 就没有用了,如果后一个异常放在finally中的话,就只会处理finally中出现的异常.所以LZ的设计思路不正确.