java中的异常机制小结

Java中的异常机制


(“异常”我可不太喜欢这俩字。。。)
什么是异常机制?
所谓异常,就是程序运行时可能出现的一些错误,当程序运行出现错误时,java运行环境就用异常类Exception的相应子类创建一个异常对象(java异常的父类都是Execption),并等待处理,例如:当读取一个不存在的文件时,运行环境就用异常类IOException创建一个对象。Java使用try----catch语句来处理异常,将可能出现的异常操作放在try部分,当其发生异常后,try部分就立即结束,而转向相应的catch部分。
那么我们来总结一下异常机制的关键字有哪些,try、catch、finally、throw、throws共五个,它们有什么不同呢?
try---catch:上面我们已经提到了它的用法,这里就不再做阐述啦!
finally:它是异常语句中必须要执行的,换句话说就是:不管程序发不发生异常,都会执行finally里面的语句,所以,当我们的某个语句可能发生异常,但它后面的语句必须执行,我们就可以将它后面的语句写到finally中,就避免重复啦!
throw:用来实例化一个新的异常
throws:用来抛出实例化的新异常
异常的分类:
异常通常分为两类:运行时异常和强制异常
运行时异常:顾名思义,运行异常就是在程序运行时报的异常,我们在写代码时它是不会给予任何报错提示,也许你会说,我有碰到代码会提示的那种异常啊?嘿嘿,那它就不是运行时异常啦!就是我们马上要说的强制异常。虽然运行时异常时在运行时发生的,但是我们可以再运行时就杜绝它。
强制异常:根据我的理解,强制异常就是那些在写代码的过程中,如果系统会提示你这里需要处理异常,那么这个异常就是强制异常了。它是由throw来实例化,用throws来抛出的。
常见的运行时异常:
异常这个东西,经常碰到,辛辛苦苦写完代码一测试,坑爹啊!。。。异常来了,什么NullPointerException、IndexOutOfBoundsException、ClassCastException等等就找上门了,虽然我很不喜欢它们,没办法!它们就是很喜欢我。这里的异常我在写的时候代码是不会报错的,只有在运行的时候它才会跳出来,所有它们就是运行时异常啦!碰到这些异常千万别冒火,因为一冒火就挂了。。。。。。
NullPointerException:空指针异常,首先我们根据控制台的提示找到对应的代码,如果找到的代码中的对象太多,这就不能硬碰硬的一个一个去找它们中谁空指针了,会找死去滴。。。我们可以写一个Sytem.out.println();输出语句,测出具体是哪个空指针了,再顺藤摸瓜,找出问题所在,通常会因为没有给对象分配内存空间,或者我们在给它分配内存空间之前使用了它,因为程序是自上而下运行滴。通常我们在用的时候可以先写个判断它是否为空的语句,就可以避免空指针了。
IndexOutOfBoundsException:下标越界异常。这种异常通常发生在数组中,也就是我们使用数组时超过了数组分配的最大内存空间,当出现这种异常时,就得好好检查数组啦!
ClassCastException:当试图将对象强制转换成不是实例的子类时,抛出该异常。
常见的强制异常:
FileNotFoundExcetpion:找不到相应的文件,处理这种异常也很简单,因为错误就是这个文件找不到,就得核对一下文件路径和是否有这个文件啦!
IOException:当发生某种 I/O 异常时,抛出此异常。此类是失败或中断的 I/O 操作生成的异常的通用类。
需要注意的是,强制异常是不能完全避免滴
以上都是我经常碰到的异常了,在这里写出来跟大家分享一下。

你可能感兴趣的:(finally,throw,try-catch,throws)