代码先锋网 代码片段及技术文章聚合

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

技术标签: java  学习  阿里Java学习路线

通过之前的分析可以发现只要方法后面带有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。

版权声明:本文为kenidi8215原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kenidi8215/article/details/107333263

智能推荐

阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第23章:包的定义及使用:课时103:静态导入

假如说现有一个类,这个类中的全部方法都是static方法,那么按照原始的做法肯定要导入程序所在的“包.类”,而后才可以通过类名称调用这些静态方法。 范例:定义一个MyMath数学类 如果此时按照原始的方式进行导入处理,那么此时就需要导入包.类,而后通过类名称调用方法。 范例:原始方式使用 从JDK1.5开始对于类中全部由静态方法的特殊类是可以采用静态导入处理形式的。 范例:...

阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第23章:包的定义及使用:课时106:访问控制权限

在面向对象的开发过程之中有三大主要特点:封装、继承、多态。那么对于封装性而言主要的实现依靠的就是访问控制权限,而访问控制权限在程序之中一共定义有甲种:private、default(不写)、protected、public。 No. 访问范围 private default protected public 1 同一包中的同一类 √ √ √ √ 2 ...

阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第6章:面向对象案例分析:课时19:案例分析—(Address)

初期的最可靠的也是最简单的分析依据:简单Java类 案例分析一 编写并测试一个代表地址的Address类,地址信息由国家、省份、城市、街道、邮编组成,并可以返回完整的地址信息。...

阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第6章:面向对象案例分析:课时24:案例分析六(Book)

案例分析六 声明一个图书类,其数据成员为书名、编号(利用静态变量实现自动编号)、书价,并拥有静态数据成员册数、记录图书的总册数,在构造方法中利用此静态变量为对象的编号赋值,在主方法中定义多个对象,并求出总册数。 在面向对象最基础的开发里面,简单java类是解决先期设计最好的方案。...

阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第6章:面向对象案例分析:课时23:案例分析五(User)

案例分析五 设计一个表示用户的User类,类中的变量有用户名、口令和记录用户个数的变量,定义类的3个构造方法(无参、为用户名赋值、为用户名和口令赋值)、获取和设置口令的方法和返回类信息的方法。 在简单java类的定义里面追加有static统计操作即可。...

猜你喜欢

阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第6章:面向对象案例分析:课时22:案例分析四(Accout)

案例分析四 构造一个银行账户类,类的构成包括如下内容: (1)数据成员用户的账户名称、用户的账户余额(private数据类型)。 (2)方法包括开户(设置账户名称及余额),利用构造方法完成。 (3)查询余额。...

阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第6章:面向对象案例分析:课时21:案例分析三(Dog)

案例分析三 设计一个Dog类,有名字、颜色、年龄等属性,定义构造方法来初始化类的这些属性,定义方法输出Dog信息,编写应用程序使用Dog类。...

阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时25:数组的基本定义

所有的项目开发之中都一定会存在有数组的使用,但是本次所讲解的只是数组的基本概念,而基本形式的数组出现的机率会有,但是不高,并且也不会涉及到过多复杂的操作,这只是针对于你自己编写的程序代码而言。 数组的基本概念 如果说现在要定义100个整形变量,那么按照传统的做法,现在的实现如下: 这种方式的确是可以进行定义,但是如果说这100个变量属于关联的一组变量,则按照此种模式定义出来的变量就不适合于程序维护...

阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时33:方法可变参数

如果说现在要求定义一个方法,这个方法可以实现任意多个整形数据的相加处理。这个的情况下最早的时候只能够通过数组来进行处理。 范例:传统实现操作 虽然以上的程序可以实现任意多个数字的参数内容传递,但是与实际的要求并不符合,实际要求的是可以传递多个参数,而不是一个数组。从JDK1.5开始为了方便开发者进行可变参数的定义,对于方法的参数提供有新的支持了。 范例:采用可变参数 可变参数的最大作用在于,在以后...

阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时32:数组相关类库

由于数组是一个重要的概念,所以在java语言本身也提供有数组的相关支持处理,这些处理是在开发中使用的。 1.数组排序:java.util.Arrays.sort(数组名称)。 2.数组拷贝(把方法做了一些变形): System.arraycopy(源数组,源数组开始点,目标数组,目标数组开始点,拷贝长度)。 范例:实现数组拷贝 现在假设有两个数组: 数组一:1、2、3、4、5、6、7、8、9; 数...