Java异常


0、C++异常处理机制基于Ada,Java异常处理则是基于C++
1、Java异常类层次结构
Java异常_第1张图片
所有异常类都继承自 Throwable类,并有两个主要分支: Error和Exception
Error类描述Java运行时系统的内部资源和资源耗尽错误,表示 编译时和系统错误
Exception类又包括两个主要分支: RuntimeException;和其他异常(如IOException等)
1) RuntimeException:运行时异常, 包括有:错误的类型转换(ClassCastException)
                                                                            数组访问越界(IndexOutOfBoundsException)
                                                                            访问空指针(NullPointerException)
只能在代码中忽略RuntimeException(及其子类)类型的异常,其他类型异常的处理都是由编译器强制实施的
RuntimeException代表的是编程错误,如无法预料的错误(null指针),应该在代码中注意进行检查的错误(如越界错误);
2) 其他异常:如 IOException,ClassNotFoundException

2、未检查异常(unchecked):所有派生于 ErrorRuntimeException 的所有异常
     已检查异常(checked):     所有其他的异常
     编译器将核查是否为所有已检查异常提供了异常处理器
3、与C++异常机制的联系
    C++中有两个基本的异常类,logic_error(程序中的逻辑错误,相当于RuntimeException),runtime_error(所有由不可测原因印发的异常,RuntimeException异常)












你可能感兴趣的:(Java异常)