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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈虹旭 中级黑马   /  2012-10-2 16:08  /  1457 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天对RuntimeException相关知识点做总结:
RuntimeException异常:
   (1)如果在函数内抛出该异常(含子类异常),函数上可以不用声明,编译一样通过。
   (2)如果在函数上声明了该异常(含子类异常),调用者可以不处理,编译一样通过。
   (3)之所以不用在函数上声明,是因为不需要让调用者处理,希望程序停止,因为运行时出现了无法继续运算的情况,必须对代码修正才行,所以调用者可以不try不throws
   (4)常见的RuntimeException异常:
    ##以下异常可以不声明,声明了可以不处理
      1.ArithmeticException :算术异常
      2.IndexOutOfBoundsException:角标越界异常
        ArrayIndexOutOfBoundsException: 数组角标越界异常
        StringIndexOutOfBoundsException:字符串角标越界异常
      3.NullPointException:空指针异常
   (5)空指针异常:
class Person
{
public void checkName(String name)
{
  name.equals("lisi");//比较两个字符串是否相等
}
}
class NullPointException
{
public static void main(String[] args)
{
  Person p = new Person();
  p.checkName(null);
}
}
   比较两个字符串是否相等:字符串1.equals(字符串2)
   ##比较两个数值,两个字符,都会提示出现空指针异常
   (6)自定义异常时,如果该异常的发生,无法再继续进行运算,就让自定义异常继承RuntimeException
   ## argument 参数;
   ##注意:面试时会考RuntimeException的方面知识,考抛出了一个运行异常,但没有声明,问你能不能编译通过
           回答是可以,因为运行异常是一个特殊的异常,抛出后可以不用声明。
   ##总结(理解即可):
     对于异常分两种:
     1.编译时被检测的异常(非运行异常)
       函数内抛出了,函数上必须声明;函数上声明了,调用者必须处理。
     2.编译时不被检测的异常(运行异常:RuntimeException及其子类)
       不用声明的;声明了也不用处理。

总结了一大堆东西,感觉好啰嗦,我想说的是:学完这个知识点以后觉得思绪很混乱,没办法理清思绪。
如果很好的去理解RuntimeException?这个知识点的重点到底在哪里?

3 个回复

倒序浏览
没有朋友帮忙分享下经验吗?在线等...
回复 使用道具 举报
为什么说我们不能声明RuntimeException呢?
假设有一个数组越界异常:ArrayIndexOutOfBoundsException (这个异常是Runtime的子类)
这些运行错误完全在我们的控制之下。如果特别关注数组下标引发的错误,
就应该更多的时间话费在修正程序错误上,而不是说明这些错误发生的可能性上。


回复 使用道具 举报
王宝龙 发表于 2012-10-2 18:10
为什么说我们不能声明RuntimeException呢?
假设有一个数组越界异常:ArrayIndexOutOfBoundsException (这 ...

我想知道的是对RuntimeException的知识点总结,不明白你说的是什么...能处理的自然会处理...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马