面试就是一场战斗,当你面对面试官的时候,尽管你知道自己知道,但如果就是表达不出来,那就如同,面对敌人,虽然手里有枪,但子弹就是射不出来一样,最后离心仪的offer越来越远
假如今天面试官问了这么一个问题,请说一下,java中的异常有哪几类?
一般正常的回答就是可能这样的,java中的异常有两类,一个是error,一个是exception,error是错误,不受程序控制的,一旦发生就是灾难性的,exception下又分为运行时异常和非运行时异常,最多再举例说明一下
你检测下自己是这么回答的吗?
如果是这样回答的话,只能算是中规中矩,一个面试官,一天面了几十人甚至上百人,同样的一个问题,为什么对你印象最深?为什么对你的回答最赞同?为什么这么多人里面要选择你呢?
其实面试官是人,是人就会有自己的思想,有自己的思想就会有逻辑,尤其是男人,逻辑征服人,逻辑留下印象
面试官问你问题的同时,也在自己思考了一份答案,或者自己内心是有一份答案的,如果你的答案和他想的一样,那基本上没戏,在他心里泛起不了任何涟漪,想要拿到offer就要在面试官的心里激起浪花才可以
同样一个问题,假如一个人是这样回答的你觉得哪个人给你的印象更深刻一些呢?
异常主要是针对程序非正常的情况,而java中所有的异常类型都是java.lang.Throwable的子类,而Throwable下面又有两个异常分支,一个是Error,一个Exception,
Error类定义了在通常环境下不希望被程序捕获的异常,它不受程序的控制,一旦出现的话,都是灾难性的,比如一般指的是jvm错误,比如堆栈溢出。
Exception类用于用户程序可能出现的异常情况,也是用来创建自定义异常类型类的类,其中Exception又包含了运行时异常和非运行时异常
而运行时异常都是RuntimeException类及其子类异常,比如NPE,IOOBE,这些异常也可以选择处理也可以选择不处理,一般由程序逻辑引起
而非运行时异常指的是RuntimeException类以外的异常类,比如IOException,ClassNotFoundException,这些是必须处理的异常,否则编译不通过,程序会报错的
以上就是我对异常的理解以及怎么使用的
显然下面的回答会比上面的回答,更加有层次和逻辑,如果你作为面试官,两个版本的回复你觉得哪个更好呢?