请问bug,error和Exception的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问bug,error和Exception的区别相关的知识,希望对你有一定的参考价值。
Exception和Error都是继承了Throwable类,在java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),他是异常处理机制的基本组成类型。Exception和Error体现了java平台设计者对不同异常情况的分类,Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应的处理。
Error是指正常情况下,不大可能出现的情况,绝大部分的Error都会导致程序(比如JVM自身)处于非正常状态,不可恢复状态。既然是非正常情况,所以不便于也不需要捕获,常见的比如OutOfMemoryError之类,都是Error的子类。
Exception又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源码里必须显示的进行捕获处理,这里是编译期检查的一部分。前面我们介绍的不可查的Error,是Throwable不是Exception。
不检查异常就是所谓的运行时异常,类似NullPointerException,ArrayIndexOutOfBoundsExceptin之类,通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译器强制要求。 参考技术A Bug:程序缺陷,
电脑系统
或者程序中存在的任何一种破坏正常运转能力的问题或者缺陷,都可以叫做“Bug”!
Error:错误,一般这个指出代码的语法错误,逻辑错误,硬件的错误等,都会在程序中体现出来,代码语法错误,程序无法运行。
Exception
:例外,在程序运行的时候,可能会出现一些意想不到的例外错误,就需要使用这个来捕捉! 参考技术B bug是指系统的漏洞,一般不会影响使用者使用
error是指错误,如果发生error,则表示系统出现问题
exception一般出现在编程语音中,指发生的异常
Error和Exception的区别?
Error和Exception都继承自Throwable类
二者不同之处在于:
Exception:
1、可以是可控制的(checked)或是不可控制的(unchecked)
2、表示一个有程序员编写的错误
3、应该在应用程序级被处理
Error
1、总是不可控的(unchecked)
2、通常用来表示系统错误,或是底层资源错误。
3、如果可能的话应该在系统级被捕获
以上是关于请问bug,error和Exception的区别的主要内容,如果未能解决你的问题,请参考以下文章