广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java经典面试题汇总:异常
  • 611
分享到

Java经典面试题汇总:异常

2024-04-02 19:04:59 611人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1. Java的异常机制2. Java如何自定义异常?3. throw 和 throws 的区别?4. Java 中被检查的异常和不受检查的异常有什么区别?5. final、fi

1. Java的异常机制

Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别。jdk中内建了一些常用的异常类,我们也可以自定义异常。

Throwable又派生出Error类和Exception类。

错误:Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现。因此,程序员应该关注Exception为父类的分支下的各种异常类。

异常:Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。

2. Java如何自定义异常?

自定义异常类只需从Exception类或者它的子类派生一个子类即可。自定义异常类如果继承Exception类,则为受检查异常,必须对其进行处理;如果不想处理,可以让自定义异常类继承运行时异常RuntimeException类。


public class BizException extends Exception {
    //默认构造器
    public BizException() {
    }
    public BizException(String message) {
        super(message);
    }
}

3. throw 和 throws 的区别?

throw:是真实抛出一个异常。

throws:是声明可能会抛出一个异常。

4. Java 中被检查的异常和不受检查的异常有什么区别?

被检查的异常应该用 try-catch 块代码处理或用 throws 关键字抛出,不受检查的异常在程序中不要求被处理或用 throws 抛出。

5. final、finally、finalize 有什么区别?

final:是修饰符,如果修饰类,此类不能被继承;如果修饰方法和变量,则表示此方法和此变量不能在被改变,只能使用。

finally:是 try{} catch{} finally{} 最后一部分,表示不论发生任何情况都会执行,finally 部分可以省略,但如果 finally 部分存在,则一定会执行 finally 里面的代码。

finalize: 是 Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法

6. try-catch-finally 中哪个部分可以省略?

try-catch-finally 其中 catch 和 finally 都可以被省略,但是不能同时省略, 也就是说有 try 的时候,必须后面跟一个 catch 或者 finally。

7. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

finally 一定会执行,即使是 catch 中 return 了,catch 中的 return 会等 finally 中的代码执行完之后,才会执行。

8. Java 中什么时候使用断言?

断言在开发中是一种常用的调试方式,很多开发语言中都支持这种机制。一般来说,断言用于保证程序最基本、关键的正确性,断言检查通常在开发和测试时开启,为了保证程序的执行效率,在软件发布后断言检查通常是关闭的,断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true,如果表达式的值为 false 则系统会报告一个 AssertionError。

9. 运行时异常与一般异常有何异同?

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

10. 你平时在项目中是如何对异常进行处理的?

(1)尽量避免出现runtimeException 。比如对于可能出现空指针的代码。带使用对象之前一定要推断一下该对象是否为空。必要的时候对runtimeException也进行try catch处理。

(2)进行try catch处理的时候要在catch代码块中对异常信息进行记录,通过调用异常类的相关方法获取到异常的相关信息,返回到WEB端,给到给用户良好的用户体验。

11. 常见的异常类有哪些?

  • NullPointerException 空指针异常
  • ClassNotFoundException 指定类不存在
  • NumberFORMatException 字符串转换为数字异常
  • IndexOutOfBoundsException 数组下标越界异常
  • ClassCastException 数据类型转换异常
  • FileNotFoundException 文件未找到异常
  • NoSuchMethodException 方法不存在异常
  • IOException IO 异常
  • SocketException Socket 异常

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: Java经典面试题汇总:异常

本文链接: https://www.lsjlt.com/news/130812.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java经典面试题汇总:异常
    目录1. Java的异常机制2. Java如何自定义异常?3. throw 和 throws 的区别?4. Java 中被检查的异常和不受检查的异常有什么区别?5. final、fi...
    99+
    2022-11-12
  • Java经典面试题汇总:JVM
    目录1. 说一下 JVM 的主要组成部分?及其作用?2. 说一下 JVM 运行时数据区?3. 说一下堆栈的区别?4. 解释内存中的栈(stack)、堆(heap)和静态区(stati...
    99+
    2022-11-12
  • Java经典面试题汇总:Spring
    目录1. 什么是Spring? 有哪些优点?2. 什么是 AOP?3. 什么是 IOC?4. 什么是 DI?5. Spring 有哪些核心模块?6. Spring 常...
    99+
    2022-11-12
  • Java经典面试题汇总:Mybatis
    目录1. MyBatis 中 #{}和 ${}的区别是什么?2. MyBatis 有几种分页方式?3. MyBatis 逻辑分页和物理分页的区别是什么?4. MyBatis 是否支持...
    99+
    2022-11-12
  • Java经典面试题汇总:Java Web
    目录1. JSP 和 servlet 有什么区别?2. 什么是Tomcat?3. Tomcat容器是如何创建Servlet类实例?用到了什么原理?4. 拦截器和过滤器的区别?...
    99+
    2022-11-12
  • Java经典面试题汇总:Spring MVC
    目录1. 什么是Spring MVC ?2. Spring MVC 有哪些组件?3. 说一下 Spring MVC 运行流程?4. Spring MVC的优点:5. @Request...
    99+
    2022-11-12
  • Java经典面试题汇总:Spring Boot
    目录1. 什么是 Spring Boot?2. 为什么要用 Spring Boot? 3. Spring Boot 核心配置文件是什么?4. Spring Boot 提供了...
    99+
    2022-11-12
  • Java经典面试题汇总--多线程
    目录1.并行和并发有什么区别?2.线程和进程的区别?3.守护线程是什么?4.实现多线程的方式有哪些?5.说一下runnable和callable有什么区别?6.sleep()和wai...
    99+
    2022-11-12
  • Java经典面试题汇总:多线程
    目录1. 并行和并发有什么区别?2.线程和进程的区别?3.守护线程是什么?4.实现多线程的方式有哪些?5.说一下runnable和callable有什么区别?6.sleep...
    99+
    2022-11-12
  • Java经典面试题汇总:网络编程
    目录1. HTTP 响应码 301 和 302 代表的是什么?有什么区别?2. 简单说一下http协议?3. HTTP与HTTPS的区别?4. HTTP协议下客户端请求报文是什么?5...
    99+
    2022-11-12
  • Java经典面试题最全汇总208道(六)
    目录前言 181、什么是类加载器,类加载器有哪些?182、说一下类加载的执行过程?183、JVM的类加载机制是什么?184、什么是双亲委派模型?185、怎么判断对象是否可以...
    99+
    2023-01-17
    Java面试题 Java经典面试题
  • Java经典面试题最全汇总208道(二)
    目录前言 53、concurrentHashMap和HashTable有什么区别54、HasmMap和HashSet的区别55、请谈谈 ReadWriteLock 和 St...
    99+
    2023-01-17
    Java面试题 Java经典面试题
  • Java经典面试题总结(一)
    Java经典面试题总结(一) 题一:Java编译运行原理题二:JDK,JVM,JRE三者之间的关系题三:谈一下对冯诺依曼体系的了解题四:重载与重写的区别题五:拆箱装箱是指什么? 题一:Java编译运行原理 Java源代码通过...
    99+
    2023-08-30
    java 开发语言
  • java哈希算法HashMap经典面试题目汇总解析
    目录1、HashMap 的数据结构?2、HashMap 的工作原理?3、当两个对象的 hashCode 相同会发生什么?4、你知道 hash 的实现吗?为什么要这样实现?5、为什么要...
    99+
    2022-11-13
  • JavaScript异步编程常见面试题汇总
    目录并发(concurrency)和并行(parallelism)的区别回调函数(callback)GeneratorPromiseasync 及 await常用定时器在上一节中我们...
    99+
    2023-02-08
    JavaScript异步编程面试题 JavaScript异步编程 JavaScript面试题
  • Java面试题经典面试题220道(附答案)
    Java基础: JDK 和 JRE 有什么区别? == 和 equals 的区别是什么?== 解读 两个对象的 hashCode() 相同, 那么 equals() 也一定为 true吗? final 在 Java 中有什么作用? ...
    99+
    2023-09-06
    java 面试 jvm
  • 2019年JAVA最常见面试题汇总(收藏)
    java基础以及多个“比较”1.Collections.sort排序内部原理在Java 6中Arrays.sort()和Collections.sort()使用的是MergeSort,而在Java 7中,内部实现换成了TimSort,其对对...
    99+
    2020-11-20
    java面试题 java面试题
  • Java八道经典面试题之链表题
    目录第一题 移除链表元素第二题 反转链表第三题 链表的中心结点第四题 倒数第k个结点第五题 合并两个有序链表第六题 链表分割第七题 判断是否回文第八题 相交链表第一题 移除链表元素 ...
    99+
    2022-11-12
  • 经典java面试题_实习生必问!
    经典java面试题_实习生必问!第一,谈谈final, finally, finalize的区别。final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstr...
    99+
    2020-03-21
    java面试题 java
  • Java常见的一些经典面试题(附答案解析)
    前言: 我想每个程序员比较头疼的事情都是:工作拧螺丝,面试造火箭吧。但是又必须经历这个过程,尤其是弄不清面试官问的问题,如果你准备的不是很充分,会导致面试的时候手足无措。今天这篇文章是从已工作5年的程序员面试几十次中挑选的面试概率比较大的一...
    99+
    2023-10-27
    java 面试 jvm mybatis mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作