有关异常经典面试题.pdf

有关异常经典面试题.pdf

ID:52296850

大小:157.36 KB

页数:6页

时间:2020-03-26

有关异常经典面试题.pdf_第1页
有关异常经典面试题.pdf_第2页
有关异常经典面试题.pdf_第3页
有关异常经典面试题.pdf_第4页
有关异常经典面试题.pdf_第5页
资源描述:

《有关异常经典面试题.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、关于java异常错误的面试题及答案1)Java中什么是Exception?这个问题经常在第一次问有关异常的时候或者是面试菜鸟的时候问。我从来没见过面高级或者资深工程师的时候有人问这玩意,但是对于菜鸟,是很愿意问这个的。简单来说,异常是Java传达给你的系统和程序错误的方式。在java中,异常功能是通过实现比如Throwable,Exception,RuntimeException之类的类,然后还有一些处理异常时候的关键字,比如throw,throws,try,catch,finally之类的。所有的异常都是通过Throwable衍生出来的。Throwable把错误进一步划分为jav

2、a.lang.Exception和java.lang.Error.java.lang.Error用来处理系统错误,例如java.lang.StackOverFlowError或者Java.lang.OutOfMemoryError之类的。然后Exception用来处理程序错误,请求的资源不可用等等。2)Java中的检查型异常和非检查型异常有什么区别?这又是一个非常流行的Java异常面试题,会出现在各种层次的Java面试中。检查型异常和非检查型异常的主要区别在于其处理方式。检查型异常需要使用try,catch和finally关键字在编译期进行处理,否则会出现编译器会报错。对于非检查型

3、异常则不需要这样做。Java中所有继承自java.lang.Exception类的异常都是检查型异常,所有继承自RuntimeException的异常都被称为非检查型异常。3)Java中的NullPointerException和ArrayIndexOutOfBoundException之间有什么相同之处?在Java异常面试中这并不是一个很流行的问题,但会出现在不同层次的初学者面试中,用来测试应聘者对检查型异常和非检查型异常的概念是否熟悉。顺便说一下,该题的答案是,这两个异常都是非检查型异常,都继承自RuntimeException。该问题可能会引出另一个问题,即Java和C的数组

4、有什么不同之处,因为C里面的数组是没有大小限制的,绝对不会抛出ArrayIndexOutOfBoundException。4)在Java异常处理的过程中,你遵循的那些最好的实践是什么?这个问题在面试技术经理是非常常见的一个问题。因为异常处理在项目设计中是非常关键的,所以精通异常处理是十分必要的。异常处理有很多最佳实践,下面列举几种,它们提高你代码的健壮性和灵活性:1)调用方法的时候返回布尔值来代替返回null,这样可以NullPointerException。由于空指针是java异常里最恶心的异常。2)catch块里别不写代码。空catch块是异常处理里的错误事件,因为它只是捕获了

5、异常,却没有任何处理或者提示。通常你起码要打印出异常信息,当然你最好根据需求对异常信息进行处理。3)能抛受控异常(checkedException)就尽量不抛受非控异常(uncheckedException)。通过去掉重复的异常处理代码,可以提高代码的可读性。4)绝对不要让你的数据库相关异常显示到客户端。由于绝大多数数据库和SQLException异常都是受控异常,在Java中,你应该在DAO层把异常信息处理,然后返回处理过的能让用户看懂并根据异常提示信息改正操作的异常信息。5)在Java中,一定要在数据库连接,数据库查询,流处理后,在finally块中调用close()方法。5)

6、既然我们可以用RuntimeException来处理错误,那么你认为为什么Java中还存在检查型异常?这是一个有争议的问题,在回答该问题时你应当小心。虽然他们肯定愿意听到你的观点,但其实他们最感兴趣的还是有说服力的理由。我认为其中一个理由是,存在检查型异常是一个设计上的决定,受到了诸如C++等比Java更早的编程语言设计经验的影响。绝大多数检查型异常位于java.io包内,这是合乎情理的,因为在你请求了不存在的系统资源的时候,一段强壮的程序必须能够优雅的处理这种情况。通过把IOException声明为检查型异常,Java确保了你能够优雅的对异常进行处理。另一个可能的理由是,可以使用

7、catch或finally来确保数量受限的系统资源(比如文件描述符)在你使用后尽早得到释放。6)throw和throws这两个关键字在java中有什么不同?一个java初学者应该掌握的面试问题。throw和throws乍看起来是很相似的尤其是在你还是一个java初学者的时候。尽管他们看起来相似,都是在处理异常时候使用到的。但在代码里的使用方法和用到的地方是不同的。throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常,你也可以申明未检查的异常,但这不

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。