课时122:RuntimeException
摘要:
1.两种类的继承结构
2.解释 RuntimeException 与 Exception 的区别?
01.两种类的继承结构
Throws 作用分析
通过之前的分析可以发现方法后面带有 Throws 的往往都是告诉用户本方法可能产生异常,观察一段代码。定义一个 JavaDemo 类,目的是将字符串类型的数据转换为整型,然后输出该结果。
代码:
public class JavaDemo{ public static void main(string args[]) { int num = Integer.parseInt(“123”) ; System.out.println (num); } }
进行编译,查看结果,程序正常运行。
点击 Integer 类中的 ParseInt()方法的定义,public static int parseInt(String s) throws NumberFormatException 可以发现该方法明确的抛出了异常,但是在处理的时候并没有强制性要求处理。
代码:
class MyMath { //这个代码执行的时候可能会产生异常,如果产生异常调用处理 public static int div(int x int y) throws ArithmeticException { // 如果在这写的是算数异常 return x/y; } } public class JavaDemo{ public static void main(string args[]) 2018/3/22 { //代码可以不强制性处理 System.out.println (MyMath.div(10,0)); } }
编译程序结果:没有强制性处理
有些方法使用 Throws 之后可以不使用强制处理,这就是RuntimeException 的作用。观察 NumberFormatException 类的继承结构,同时也观察数学异常类的继承结构。
02.两种类的继承结构
异常子类
如果所有的程序执行上只要使用了 Throws 定义的方法,都必须要求开发者进行手工处理,这样一来代码的编写就太麻烦了。所以在设计的过程之中考虑到代码编写的方便,提供了一个灵活的可选的异常处理父类,即“RuntimeException”,这个类异常的子类可以不需要强制性处理。
03.解释RuntimeException与Exception的区别?
面试题
(1) RuntimeException是Exception的子类;
(2) RuntimeException标注的异常可以不需要进行强制性处理,但是Exception异常必须进行强制性处理;
(3) 常见的RuntimeException异常有:NumberFormatException、ClassCastException,NullPointerException等等。