Java程序运行过程中所发生的异常事件从严重性可分为两类:
1.错误(Error):JVM系统内部错误或资源耗尽等严重情况-属于JVM需要负担的责任
•这一类异常事件无法恢复或不可能捕获,将导致应用程序中断。
2.异常(Exception):其它因为编程失误或偶然的外在因素导致的一般性问题。
•这类异常得到恰当的处理时,程序有机会恢复至正常运行状况。程序员通常只能处理异常(Exception),而对错误(Error)无能为力。
异常(Exception)又可以从编程角度分为两类:
1.非受检unchecked异常(RuntimeException):编译器不要求强制处置的异常。
•一般是指编程时的逻辑失误。是程序员应该积极避免其出现的异常
•java.lang.RuntimeException及它的子类都是非受检异常:
•错误的类型转换:java.lang.ClassCastException
•数组下标越界:java.lang.ArrayIndexOutOfBoundsException
•空指针访问:java.lang.NullPointerException
•算术异常(除0溢出):java.lang.ArithmeticException
2.受检(checked)异常:编译器要求必须处置的异常。指的是程序在运行时由于外界因素造成的一般性异常。
•没有找到指定名称的类:java.lang.ClassNotFoundException
•访问不存在的文件:java.io.FileNotFoundException
•操作文件时发生的异常:java.io.IOException
•操作数据库时发生的异常:java.sql.SQLException
•网络操作时发生的异常:java.net.SocketException