前言:
学习nodejs的过程中,需要对异常进行监听和处理,这里的异常和Java中的Java是否一样?解析这个问题的过程先要明白Java的异常是什么?nodejs中的异常是什么?
Java中的error和exception
两者的“异”&各自的概念:
1.error:error 是指在正常情况下,不大可能出现的情况,绝大部分的 Error 都会导致程序处于非正常的、不可恢复状态。(这个时候运行的服务极有可能会down掉)--不可控,比较难捕获,偏底层环境
2.exception:exception是在程序编写过程中由于语法错误或者其他逻辑错误产生的异常,分为运行时异常和编译时异常;编译时异常是开发工具在编译期显示捕获的异常,而运行时异常常常与逻辑错误挂钩,是程序员编写程序时产生的错误。(一般异常出现时我们要主动去捕获,并且去想办法修复)--相对可控
两者的“同”:error和exception都是继承于Throwable类
简单来说,只要捕获的exception,我们作为程序员,都应该想办法去消灭他们,让我们的程序更加健壮。而罗列完概念之后,我们来看看有哪些Java的常见异常和错误:(有前辈写的相关总结非常棒,在此我简单的引用他们的成果)——
举个例子:
Java常见的10大Java exception:
https://blog.csdn.net/jarvan_song/article/details/52584608
Java常见的几大error:
1)Java版本错误(无效的源发行版1.8)
2)ExceptionInInitializerError
3)IncompatibleClassChangeError
(参考源自:https://blog.csdn.net/hanliangning/article/details/73869476)
回望exception的处理机制:(throw和try…catch)throw会一层一层的往上抛异常,而与之对应的是try…catch,在可能出现异常的代码块,我们加上try…catch即可,否则可能产生额外的性能开销(Java 每次实例化 Exception时,会对对应的栈进行快照,当放在try…catch的代码块很大的时候,那么就是一个很重的操作,会开始对性能产生不可忽视的影响)
node相关内容整合中(敬请期待)