Java异常

来源:互联网 发布:java麻将游戏代码算法 编辑:程序博客网 时间:2024/04/30 06:07

异常是指程序运行(非编译)时所发生的非正常的情况或者错误,当程序违反了语义规则时,JVM就会将出现的错误表示为一个异常并抛出。异常可以在catch块中进行捕获和处理。

常处理的目的:提高程序的安全性和鲁棒性。

Java中把异常当作对象来处理,并且定义了一个基类(java.lang.Throwable)作为所有异常的父类。

异常的的分类:Error(错误)+ Exception(异常)

1)Error表示程序在运行期间出现了非常严重的错误,并且错误不可恢复,属于JVM层次的严重错误,会导致程序的终止执行。例如OutOfMemoryError和ThreadDeath。

2)Exception表示可以回复的异常,编译器可以捕捉到。

             包含:检查异常(checked exception )+运行时已成(runtime exception)。

2.1)检查异常:最常碰到,比如IO异常和SQL异常,发生在编译阶段。

                         异常的发生不会导致程序出错,处理后会可以继续执行后续操作

                         程序依赖于不可靠的外部条件。

2.2)运行时异常:编译器不强制对其进行异常捕获并处理。如果不对这种异常进行处理,当出现这种异常时,会有JVM处理。常见的与NullPoingerException(空指针异常)、ClassCastException(类型转换异常)、ArrayIndexOutOfBoundsException(数组越界异常)、ArrayStoreException(数组存储异常)、BufferOverflowException(缓冲区溢出异常)、ArithmeticException(算术异常)等。

                   出现运行时异常,系统会把异常向上层抛出,知道遇到处理代码为止。多线程用Thread.run()抛出,单线程用main()抛出。线程抛出异常,线程退出;主程序抛出异常,程序终止。


异常处理注意事项:

a.先捕获子类,后捕获基类

b.尽早抛出异常,同时处理捕获的异常,或者从错误中恢复,或者让程序仅需执行。

c.可自定义继承自Exception的异常类

d.异常能处理就处理,不能处理就抛出。最终没有处理的异常,JVM会进行处理


0 0
原创粉丝点击