java编译时异常和运行时异常有什么区别

2023-12-26 23阅读

Java语言中编译执行和解释执行的区别?

编译执行和解释执行是不同语言之间的特性,所有的java都是编译执行的。 如果不是编译执行,其实已经完全不用java的编译器。那么只是一个使用java语法的另一种语言而已。

java编译时异常和运行时异常有什么区别(图片来源网络,侵删)

编译执行是指把代码先编译成机器码。然后按顺序运行,如果编译中有任何异常,都无法继续运行。

java的编译就是把java转换成class。而解释执行则是运行到哪一行代码就执行哪一行代码。如果其他代码有错误但没有运行到,一般不会影响。

比较起来,编译执行速度要快的多。而解释执行则在于比较灵活。可以动态修改。甚至可以在代码运行到指定语句之前,修改该代码。

java编译时异常和运行时异常有什么区别(图片来源网络,侵删)

什么异常可以在编译阶段不处理?

运行时异常可以在编译阶段不处理

异常可以分为:编译时异常(Exception)和运行时异常(RunTimeException)

运行时异常:所有的RuntimeException及子类都属于运行时异常,运行时异常在编写程序阶段,可以不处理。

java编译时异常和运行时异常有什么区别(图片来源网络,侵删)

编译时异常:所有的Exception的直接子类,必须在编写程序的时候预先对这种异常进行处理,如不处理,编译器报错。

编译时异常大概率会发生(大部分是语法、逻辑、超出类型范围值等错误),运行时异常发生概率相对较小。

Error与Exception有什么区别?

Error和Exception的联系

继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception。

Error和RuntimeException及其子类称为未检查异常(Unchecked exception),其它异常成为受检查异常(Checked Exception)。

Error和Exception的区别

Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢出等。如java.lang.StackOverFlowError和Java.lang.OutOfMemoryError。对于这类错误,Java编译器不去检查他们。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和预防,遇到这样的错误,建议让程序终止。

Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。

运行时异常和受检查的异常

Exception又分为运行时异常(Runtime Exception)和受检查的异常(Checked Exception )。

RuntimeException:其特点是Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try……catch捕获,也没有用throws抛出,还是会编译通过,如除数为零的ArithmeticException、错误的类型转换、数组越界访问和试图访问空指针等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。

受检查的异常(IOException等):这类异常如果没有try……catch也没有throws抛出,编译是通不过的。这类异常一般是外部错误,例如文件找不到、试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。

到此,以上就是小编对于java编译时异常和运行时异常有什么区别吗的问题就介绍到这了,希望这3点解答对大家有用。

文章版权声明:除非注明,否则均为游侠云资讯原创文章,转载或复制请以超链接形式并注明出处。

目录[+]