阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第27章:异常的捕获及处理:课时123:RuntimeException

通过之前的分析可以发现只要方法后面带有throws往往都是告诉用户本方法可能产生的异常是什么,所以这个时候来观察一段代码。

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;
这个方法上明确的抛出了一个异常,但是在处理的时候并没有强制性要求处理,观察一下NumberFormatException类的继承结构,同时也观察数学异常类的继承结构;

ArithmeticException:
java.lang.Object
	|-java.lang.Throwable
		|-java.lang.Exception
			|-java.lang.RuntimeException
				|-java.lang.ArithmeticException

NumberFormatException:
java.lang.Object
	|-java.lang.Throwable
		|-java.lang.Exception
			|-java.lang.RuntimeException
				|-java.lang.IllegalArgumentException
					|-java.lang.NumberFormatException

如果现在所有的程序执行上只要使用了throws定义的方法都必须要求开发者进行手工处理,那么这个代码的编写就太麻烦了,所以在设计的过程之中,考虑到代码编写的方便,所以提供有一个灵活的可选的异常处理父类“RuntimeException”,这个类的异常子类可以不需要强制性处理。
面试题:请解释RuntimeException与Exception的区别?列举出几个你常见的RuntimeException;
1.RuntimeException是Exception的子类;
2.RuntimeException标注的异常可以不需要进行强制性处理,而Exception异常必须强制性处理;
3.常见的RuntimeException异常:NumberFormatException、ClassCastException、NullPointerException。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值