<A href="http://www.goodprogrammer.org/" target="blank">android培训</a>------我的java笔记,期待与您交流!
关于java中异常的知识点也学习了好久了,今天依旧把前段时间学习的异常的知识点整理一下.
好了,开始上笔记:
一:java中异常是什么呢?
简单的说就是程序出现了不正常的状况.
二:java中的异常体系是怎么样的呢?
java中的异常并不是简单的几个类来描述,而是有自己的异常体系.
让我们来看一下java API对Throwable的解释:Throwable是java中所有错误和异常的超类,只有是Throwable或者其子类的实例才能被jvm或者java throw语句抛出,同样该类实例或者其子类的实例才可以是catch语句的参数.
java中异常分为错误和异常,错误的超类是Error,它的特点是不允许被捕捉,出现Error就是严重问题,我们一般不去处理他.而异常又分为编译时异常和运行时异常.首先编译时异常就是编译器会检查的语法错误,我们必须要处理,处理的方法是用throws声明.
而整个异常体系中只有RuntimeException是运行时异常,除此之外的所有Exception子类都是编译时异常, 对于运行是异常,编译器是不会检查的,所以我们处理不处理都行.
如果不处理,那么就会有jvm进行默认的处理方式,即:抛出异常,打印异常的具体信息.
我写了2个方法,这两个方法中都会抛出运行时异常,我们在main方法中调用这两个方法,对于运行时异常我们可以捕获也可以不捕获,但是如果我们不去处理他,那么我们后面的代码将无法执行,所以我们如果想要去让后面的代码执行,就必须要捕获处理他,如上代码,调用method1()和method2()后,异常被我们处理了,处理的方式是打印异常的具体信息,最后我们放在finally中的代码也得到了执行,重要的是main()中method1()和method2()后面的代码也得到了执行.
三:关键字throws和throw的区别是什么呢?
throws用法:throws用在方法上进行异常的声明,后面可以跟一个或者多个异常的类名,表示该方法可能抛出一个异常,是一种可能性.
而throw是用在方法的内部,后面跟着一个异常的实例,一旦使用throw,则表明此处必定抛出一个异常.
四:自定义异常的方法:?
java中已经存在的异常类型有很多种,但是这些异常有时并不能满足我们的需要,所以我们需要在自定义异常.
自定义异常的方法:定义一个类继承Exception或者RuntimeException,提供一个无参构造和一个才参数的构造就行了.
五:异常的注意事项?
1,父类的方法没有异常抛出时,子类的重写的方法不能抛出异常.
2,父类方法抛出异常时,子类重写的方法抛出的异常必须小于等于父类抛出的异常.
3,父类的方法抛出多个异常时,子类重写的方法必须比父类少.