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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yninggis 中级黑马   /  2014-11-25 00:54  /  1331 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问:
1、怎么判断该方法需要抛出异常?或者怎么判断该方法需要声明异常?能否给个总结?
2、子类重写父类函数中只能抛出父类函数声明的异常或及其子异常吧?那如果子类函数产生了异常,该怎么处理?是不是只能内部自己处理异常?

白天忙别的事情,只能将问题积累到晚上发了。谢谢各位!

评分

参与人数 1技术分 +1 收起 理由
MVP + 1

查看全部评分

6 个回复

倒序浏览
我觉得:①如果不是自定义异常的话编译的时候会提示的吧
            ②如果是自定义异常的话就自己提前处理了,没预计到的话运行的时候会产生错误,比如除零了
子类可以重写父类函数 在抛出异常声明方面要满足下面任意一条
1 不声明抛出异常
2 声明抛出的异常必须是其父类方法声明抛出的那种异常或者其子类异常

评分

参与人数 1技术分 +1 收起 理由
MVP + 1

查看全部评分

回复 使用道具 举报
1.一般来说你在函数上throws出了异常你就要对该异常进行处理(try或throws),
因为抛出的异常没有处理,jvm会报错
但是有一个特殊的子类异常RuntimeException
  如果在函数上声明该异常或者在函数内抛出该异常,调用者可以不用处理,一样可以编译通过

2.当在函数内部出现了throw抛出异常对象,那么就必须要给对应的处理动作。
处理动作有两个要么在内部try catch处理。要么在函数上声明让调用者处理。
回复 使用道具 举报
用eclipse鼠标点击发现异常很容易,但如果是普通的记事本 就比较蛋疼了   一般不熟悉的人很难提前知道异常
回复 使用道具 举报
编译时异常我是写好编译时再看看在哪里发生了什么异常,因为反正编译不过通过,编译器都会给你一一找出来。而且如果出现编译时出现异常问题表示语法没了,在进行专门的处理呗。
不过现在的开发工具在编写时就会提示那句话出了什么异常,很人性化。
回复 使用道具 举报
对 ,如果父类没有异常的话,子类是不能够throws的。只能内部try catch。
回复 使用道具 举报
首先第一个问题:判断该方法需要抛出异常?,我的理解就是,但你在写你得程序的时候,对于某一下可能会出现异常的地方应该先做一个预判,比如,当你使用0作为除数的时候,你就应该想到这里可能回报异常,此时你就需要抛异常,或者try-catch.写程序,本就应该测试先行.
第二个问题:子类重写父类的时候,子类所抛出的异常只能值父类所抛异常的子类或者就是父类的异常.如果不满足这个条件,就不会构成复写了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马