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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© haio 中级黑马   /  2014-3-21 09:30  /  2067 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 haio 于 2014-3-23 09:06 编辑

还是没有搞清楚异常在什么情况下只能try不能throw求高人指点

评分

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

查看全部评分

4 个回复

倒序浏览
当异常发生时,有别的方法调用它,就可以将异常抛出到调用它的方法上,但当异常发生在最终调用类的时候,就不能再向上抛了,必须try{}catch{}解决异常,

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 haio 于 2014-3-21 13:15 编辑
Ranger 发表于 2014-3-21 12:51
当异常发生时,有别的方法调用它,就可以将异常抛出到调用它的方法上,但当异常发生在最终调用类的时候,就 ...

最终调用类是什么意思?可以给一段代码或者具体说明一下下吗?非常感谢!!
回复 使用道具 举报
抛出的异常比上级还大时,或者这个异常客户处理不了只能交给你处理时,一般是传进来的参数异常要try处理,程序代码异常你处理不了的要throw,throw这个异常是交给你调试程序用到,try是交给客户让他传入合法参数信息

评分

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

查看全部评分

回复 使用道具 举报
给你看一个场景吧:
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. }
复制代码


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

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马