java编译时异常和运行时异常有甚么不同
Java中的异常分为编译时异常(Checked Exception)和运行时异常(Unchecked Exception)。
编译时异常:编译时异常是在编译阶段就出现的异常,一定要在代码中显式处理或声明抛出。编译时异常包括IOException、ClassNotFoundException等。如果不处理或声明抛出编译时异常,编译器将会报错,不允许程序通过编译。编译时异常的处理方式可以是使用try-catch语句进行捕获和处理,还是在方法签名中使用throws关键字声明异常。
运行时异常:运行时异常是在程序运行时才出现的异常,不需要在代码中显式处理或声明抛出。运行时异常包括NullPointerException、ArrayIndexOutOfBoundsException等。运行时异常是由程序逻辑毛病酿成的,通常是程序员的毛病,比如对空援用进行操作、数组越界等。运行时异常不强迫要求进行捕获和处理,如果不处理,程序将终止履行并抛出异常信息。
总结:
1. 编译时异常一定要显式处理或声明抛出,运行时异常不需要。
2. 编译时异常产生在编译阶段,运行时异常产生在程序运行阶段。
3. 编译时异常是由外部因素(如IO毛病)引发的,运行时异常是由程序逻辑毛病引发的。
4. 编译时异常一定要处理,否则编译器报错,运行时异常可以不处理,但会致使程序终止履行。
需要注意的是,运行时异常虽然不强迫要求进行处理,但良好的编程习惯是尽可能对可能产生的异常进行处理,避免程序崩溃或产生不可预感的结果。
TOP