黑马程序员技术交流社区

标题: 什么情况下异常只能try不能throw? [打印本页]

作者: haio    时间: 2014-3-21 09:30
标题: 什么情况下异常只能try不能throw?
本帖最后由 haio 于 2014-3-23 09:06 编辑

还是没有搞清楚异常在什么情况下只能try不能throw求高人指点
作者: Ranger    时间: 2014-3-21 12:51
当异常发生时,有别的方法调用它,就可以将异常抛出到调用它的方法上,但当异常发生在最终调用类的时候,就不能再向上抛了,必须try{}catch{}解决异常,
作者: haio    时间: 2014-3-21 13:12
本帖最后由 haio 于 2014-3-21 13:15 编辑
Ranger 发表于 2014-3-21 12:51
当异常发生时,有别的方法调用它,就可以将异常抛出到调用它的方法上,但当异常发生在最终调用类的时候,就 ...

最终调用类是什么意思?可以给一段代码或者具体说明一下下吗?非常感谢!!
作者: 刘凯旋    时间: 2014-3-21 13:22
抛出的异常比上级还大时,或者这个异常客户处理不了只能交给你处理时,一般是传进来的参数异常要try处理,程序代码异常你处理不了的要throw,throw这个异常是交给你调试程序用到,try是交给客户让他传入合法参数信息
作者: 水蓝    时间: 2014-3-21 18:22
给你看一个场景吧:
1、实现接口:
  1. //定义一个获取数据的接口
  2. interface IData {
  3.         byte getData();
  4. }

  5. //这个是实现接口的类
  6. class Data implements IData {
  7.         @Override
  8.         public byte getData() {
  9.                 //这边上抛一个Exception
  10.                 //因为接口中,没有声明有Exception上抛,所以只能catch住
  11.                 try {
  12.                         throw new Exception();
  13.                 } catch (Exception e) {
  14.                         //处理异常
  15.                 }
  16.                 return 0;
  17.         }
  18. }
复制代码


父子类的继承,抽象类的实现,也可以以此类推。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2