Java面试之异常处理

标签: java面试 异常处理
2人阅读 评论(0) 收藏 举报
分类:

1、error和exception的区别?

Error类和Exception类的父类都是Throwable类

Error类一般是指与虚拟机相关的问题,如系统奔溃,虚拟机错误,内存空间不足,方法调用栈溢出等。错误导致的应用程序中断,仅靠程序本身无法恢复和预防,遇到这样的错误,建议程序终止。

Exception类表示程序可以处理的异常,可以捕获且有可能恢复。遇到这种类异常,应尽可能处理异常,使程序恢复运行,而不是随意终止异常。

2、Java异常处理机制

Java对异常类进行了分类,不同类型的异常分类用不用的Java类表示,所有异常类的根类是java.lang.Throwable,Throwable下面有两个派生的子类Error和Exception,Error表示应用程序本身无法克服和恢复的一种严重问题。Exception表示程序还能恢复和克服的问题,其中分为系统异常和普通异常,系统异常是软件本身缺陷导致的问题,也就是开发人员考虑不周到所导致的问题,软件使用者无法克服和恢复,但是这种问题下还可以让系统运行或者让软件死掉,例如,数组下标越界(ArrayIndexOfBoundsException),空指针异常等;普通异常是运行环境的变化或异常导致的问题,是用户能够克服的问题,例如,网络断线,硬盘空间不够,发生这样的异常后,程序不应该死掉。

Java为系统异常和普通异t常提供了不同的解决方案,编译器强制普通异常必须try..catch处理或用throws声明继续上抛给调用方法处理,所以普通异常也称为checked异常,而系统异常可以处理也可以不处理,所以,编译器不强制用try..catch处理或throws声明,所以系统异常处理也称为uncheched异常。

3、写出常见的5个RuntimeException

     (1)java.lang.NullPointerException空指针异常,出现原因:调用了未经初始化的对性爱那个或者不存在的对象。

     (2)ClassNoFoundException 指定类找不到,出现原因:类的名称和路径加载错误,通常是试图通过字符串来加载某个类时可能引发异常。

     (3)NumberFormatException字符串转换为数字异常,出现原因:字符串数据中包含非数字型字符。

     (4)IndexOutOfBoundsException数组下标越界异常

     (5)IllegalArgumentException 方法传递参数错误

      (6)ClassCastException数据类型转换异常

      (7)NoClassDefFoundExcetion 未找到类定义错误

      (8)SQLException SQL异常

       (9)InstantiationException实例化异常

        (10)NoSuchMethodExceptioin 方法不存在异常

6、throw和throws区别

throw:

    (1)throw语句用在方法体内,表示抛出异常,由方法体内的语句处理

    (2)throw是具体向外抛出异常的动作,所以它抛出的是一个异常实例,执行throw一定是抛出了某种异常

throws:

    (1)throws语句是用在方法声明后面,表示如果抛出异常,由该方法的调用者来进行异常处理。

    (2)throws主要是声明这个方法会抛出某种类型的异常,让它的使用者要知道需要捕获的异常的类型。

    (3)throws表示出现异常的一种可能性,并不一定会发生这种异常。


查看评论

轻松搞定Java Web面试

《轻松搞定Java Web面试》主要是帮助正在找工作的毕业生或者想找更好工作的社会人员而设计的一系列课程。本人根据自己在阿里,爱奇艺,饿了么,携程,2345,小米,招商银行等等大公司的面试经验而总结出这样的一套课程。希望可以快速帮助学员找到心仪的工作。课程设计到web开发的所有面试题,而且面试题会不断的补充。
  • 2017年07月18日 10:55

【Java面试知识】异常

Java中的两种异常类型是什么?他们有什么区别?Java中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常。不受检查的异常不需要在方法或者是构造函数上声明,就算方法或者...
  • liyazhou0215
  • liyazhou0215
  • 2017-08-19 16:36:43
  • 456

Java异常处理面试题归纳

对常见关于exception面试题的归纳
  • hai_cheng001
  • hai_cheng001
  • 2014-07-22 10:53:38
  • 2877

Java异常常见面试笔试题

1) Java中的检查型异常和非检查型异常有什么区别?  这又是一个非常流行的Java异常面试题,会出现在各种层次的Java面试中。检查型异常和非检查型异常的主要区别在于其处理方式。检查型异常需要使用...
  • qq_36523638
  • qq_36523638
  • 2018-02-24 17:10:24
  • 100

java异常面试题及编程题

概念题 1.java中用来抛出异常的关键字是什么? throw 2.异常和Error的区别? error:是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。 Exception :表示可恢...
  • Bubble1210
  • Bubble1210
  • 2016-03-01 22:12:58
  • 4119

【C/C++学院】0831-类与对象的异常/面试100题1-100

类与对象的异常 Cpp异常 #include #include using namespace std; //标识错误的类型 class wrong { }; int intdiv(i...
  • waldmer
  • waldmer
  • 2016-01-10 22:18:13
  • 1394

Java异常相关的面试题(上)

1)java中什么是Exception ?        简单的说,异常就是Java传达给系统的和程序错误的方式。在java中,异常功能是通过实现比如 Throwable,Exception,Runt...
  • supersanya
  • supersanya
  • 2016-03-14 17:29:50
  • 2258

JAVA异常架构图及面试题、及其断言

error表示系统级的错误,是java运行环境内部错误或者硬件问题,不能指望程序来处理这样的问题,除了退出运行外别无选择,它是Java虚拟机抛出的。 exception 表示程序需要捕捉、需要处理的...
  • JavaWebRookie
  • JavaWebRookie
  • 2016-11-25 17:09:48
  • 1390

异常面试题

检查性异常与非检查性异常区别   检查性异常: 不处理编译不能通过 非检查性异常:不处理编译可以通过,如果有抛出直接抛到控制台。 运行时异常: 就是非检查性异常 非运行时异常: 就是检查性异常 ...
  • t0404
  • t0404
  • 2016-07-12 22:32:25
  • 1016

java-深入篇-java的异常处理

或许大家都试过这样的一种经历:不管是玩手机还是电脑,在运行一个软件的时候,有时候会无端端的崩溃掉。这种情况在就连qq在早期的时候也会发生。当然,不仅是他,就连我们使用的系统,也会有这种情况。比如win...
  • dengminghli
  • dengminghli
  • 2017-05-10 23:04:37
  • 3339
    个人资料
    等级:
    访问量: 1072
    积分: 143
    排名: 113万+
    文章存档