首页 课程 师资 教程 报名

2020年Java面试异常处理

  • 2019-12-19 11:37:26
  • 2020次 动力节点

从事Java开发的小伙伴在最初的面试时应该会经常遇到一些问题,那就是在Java面试用面试官提问的各种Java开发开发方面的问题,在Java面试问题中最常被问及的就是Java异常如何处理,今天小编就和大家一起来探讨一下Java异常如何处理。

2020年Java面试异常处理

  Java面试:Java异常如何处理

  1、Java中的检查型异常和非检查型异常有什么区别?

  这是一个非常流行的Java异常面试题,会出现在各种层次的Java面试中。检查型异常和非检查型异常的主要区别在于其处理方式。检查型异常需要使用try, catch和finally关键字在编译期进行处理,否则会出现编译器会报错。对于非检查型异常则不需要这样做。Java中所有继承自java.lang.Exception类的异常都是检查型异常,所有继承自RuntimeException的异常都被称为非检查型异常。

  2、Java中什么是Exception?

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

  3、在Java异常处理的过程中,你遵循的最好的实践是什么?

  这个问题在面试技术经理是非常常见的一个问题。因为异常处理在项目设计中是非常关键的,所以精通异常处理是十分必要的。异常处理有很多最佳实践,下面列举集中,它们提高你代码的健壮性和灵活性:

  1) 调用方法的时候返回布尔值来代替返回null,这样可以NullPointerException。由于空指针是java异常里最恶心的异常。

  2) catch块里别不写代码。空catch块是异常处理里的错误事件,因为它只是捕获了异常,却没有任何处理或者提示。通常你起码要打印出异常信息,当然你最好根据需求对异常信息进行处理。

  3)能抛受控异常(checked Exception)就尽量不抛非受控异常(unchecked Exception)。通过去掉重复的异常处理代码,可以提高代码的可读性。

  4) 绝对不要让你的数据库相关异常显示到客户端。由于绝大多数数据库和SQLException异常都是受控异常,在Java中,你应该在DAO层把异常信息处理,然后返回处理过的能让用户看懂并根据异常提示信息改正操作的异常信息。

  5) 在Java中,一定要在数据库连接,数据库查询,流处理后,在finally块中调用close()方法。

  4、Java中的NullPointerException和ArrayIndexOutOfBoundException之间有什么相同之处?

  在Java异常面试中这并不是一个很流行的问题,但会出现在不同层次的初学者面试中,用来测试应聘者对检查型异常和非检查型异常的概念是否熟悉。顺便说一下,该题的答案是,这两个异常都是非检查型异常,都继承自RuntimeException。该问题可能会引出另一个问题,即Java和C的数组有什么不同之处,因为C里面的数组是没有大小限制的,绝对不会抛出ArrayIndexOutOfBoundException。

  5、 既然我们可以用RuntimeException来处理错误,那么你认为为什么Java中还存在检查型异常?

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

2020年Java面试异常处理

      以上就是动力节点Java培训机构小编介绍的“2020年Java面试异常处理”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

相关推荐

最新最全java面试题及答案(初级到高级)

史上最全的中高级JAVA工程师面试题及答案汇总

Java高级开发工程师面试题

2019史上最全java面试题题库大全800题

哪有资深java工程师面试题

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交