前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java异常->常见面试题汇总

Java异常->常见面试题汇总

作者头像
猫头虎
发布2024-04-07 15:09:37
850
发布2024-04-07 15:09:37
举报
文章被收录于专栏:猫头虎博客专区

Java异常->常见面试题汇总

1. Java中异常的分类 1>. 父类:Throwable

代码语言:javascript
复制
(1) Throwable:位于 java.lang包中,是所有错误、异常的父类
(2) 常见 方法:
    a.String getMessage():返回字符串类型异常信息,给用户做提示信息
    b.void printStackTrace():打印跟踪方法调用栈而获取的详细异常信
                              息,作用:用于开发人员做程序调试,建
                              议在catch中调用,尽可能不要省略

2>. 子类:Error,是Throwable直接子类,代表错误

代码语言:javascript
复制
 (1) 特点:代表仅靠程序本身无法恢复的严重错误
 (2) 案例:
 		内存溢出:java.lang.StackOverflowError(栈溢出)、
 		        OutOfMemoryError堆溢出
 (3) 处理:一旦遇到 Error,无法靠程序处理(不要试图捕获)		      

3>. 子类:Exception,是Throwable直接子类,代表异常

代码语言:javascript
复制
   (1) RuntimeException:运行时异常、未检查异常
       a. 定义:RuntimeException异常及子类或是间接子类统称为运行时异常
       b. 特点:运行时异常在编译过程中编译器不会检测此类异常,运行时报错
       c. 处理:可以处理也可以不处理,可以通过规范代码避免
       d. 案例:常见的运行时异常:
          I.java.lang.ClassCastException:类型转换异常
          II. java.lang.NullPointerException:空指针异常
          III.java.lang.ArrayIndexOutOfBoundsException
                               :数组下标越界
          IV.java.lang.StringIndexOutOfBoundsException:
                                  字符串下标越界
          V. java.lang.IndexOutOfBoundsException:List集合下标越界
          VI. java.lang.NumberFormatException:数字的格式转换异常
   (2) 非RuntimeException:非运行时异常 已检查异常(CheckedException)
       a. 定义:和RuntimeException没有任何继承关系的异常类统称为非运行
               时异常
       b. 特点:编译过程中编译器检测此类异常,在编译过程中报错
       c. 处理:必须处理,如果不处理,无法运行
               注意:编译报错有两种情况:
                    I. 语法出现错误
                    II. 有可出现非运行时异常
       d. 案例: Class.forName("TestStudent"); // 出现非运行时异常

2. 写出 throw 和 throws 的区别。

代码语言:javascript
复制
 throw用于手动产生异常,定义在方法内部
        语法:throw new 异常类名();
 throws用于消极处理异常,定义在方法的声明位置
       修饰符 返回值类型 方法名(形参列表)throws 异常类名{}

3. 写出 final 、finalize、finally的区别 final:修饰符,可以修饰变量、方法、类 final修饰的变量作用范围内常量 final修饰的方法允许继承不允许被覆盖 final修饰的类不能被继承,即没有子类 finalize:方法名,垃圾回收器回收垃圾对象时,jvm自动调用方法 finally:应用积极处理异常try…catch…finally中,必须执行的语句 4. 方法覆盖的要求。

  1. 子类的方法名、形参列表、返回值类型和父类相同
  2. 子类的方法修饰符和父类相同或是比父类更宽
  3. 子类的方法不能抛出比父类更宽的异常

5. 手动写出一个自定异常类MyException.

  1. 定义一个类继承Exception或是其子类,如果基于定义的类抛出异常为运行时异常,则需要继承RuntimeException或是其子类
  2. 提供两个构造方法:
代码语言:javascript
复制
	(1) 无参数的构造方法
   (2) 带有String类型参数的构造方法,参数代表异常信息,借助
       super(message) 为父类属性massage 赋值
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java异常->常见面试题汇总
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档