按照异常需要处理的时机分为编译时异常(也叫受控异常)也叫 CheckedException 和运行时异 常(也叫非受控异常)也叫 UnCheckedException。Java认为Checked异常都是可以被处理的 异常,所以Java程序必须显式处理Checked异常。如果程序没有处理Checked 异常,该程序 在编译时就会发生错误无法编译。这体现了Java 的设计哲学:没有完善错误处理的代码根本没 有机会被执行。对Checked异常处理方法有两种:
-
第一种:当前方法知道如何处理该异常,则用try…catch块来处理该异常。
-
第二种:当前方法不知道如何处理,则在定义该方法时声明抛出该异常。
运行时异常只有当代码在运行时才发行的异常,编译的时候不需要try…catch。Runtime如除 数是0和数组下标越界等,其产生频繁,处理麻烦,若显示申明或者捕获将会对程序的可读性 和运行效率影响很大。所以由系统自动检测并将它们交给缺省的异常处理程序。当然如果你有 处理要求也可以显示捕获它们。