当前位置: 首页 > news >正文

面试理论篇三

关于异常机制篇

异常描述

目录

  • 关于异常机制篇
    • 异常描述

注:自用

1,Java中的异常分为哪几类?各自的特点是什么?

Java中的异常 可以分为 可查异常(Checked Exception)运行时异常(Runtime Exception)错误(Error)三类。可查异常需要在代码中显式捕获声明抛出,运行时异常 可以选择 捕获或声明抛出错误 通常是指 虚拟机 相关的问题无法恢复


2,Java中的异常处理机制是什么?

Java的异常处理机制 使用 try-catch-finally语句块 来处理异常。try块用于包裹可能抛出异常的代码,catch块用于捕获和处理异常,finally块用于定义 无论 是否异常 都需要执行的代码。


3,描述⼀下try-catch-finally语句块的执行流程。

当try块中的代码出现异常时,会立即跳转到对应的catch块进行处理。如果发现catch块中可以处理该异常,会执行相应的代码,然后继续执行finally块中的代码如果没有匹配的catch块,当前方法会立即结束,异常会被抛给上⼀级调用者或者由虚拟机处理。不论是否发生异常,finally块中的代码总会被执行


4,throw和throws关键字的作用是什么?

throw关键字 用于 主动抛出⼀个异常对象,可以在任何地方使用。throws关键字 用于在方法上 声明 可能抛出的异常类型告诉调用者需要处理这些异常。


5,RuntimeException和Checked Exception有什么区别?

RuntimeException 是运行时异常,程序员可以选择捕获或声明抛出,但不强制要求。CheckedException 是可查异常,需要在代码中显式捕获声明抛出。区别在于编译器是否会强制检查异常的处理


6,什么是异常链?

异常链 是指 在异常处理过程中,可以通过在catch块中传递异常对象来保留先前抛出的异常信息。这样可以将多个异常相关联,方便后续的异常分析和处理。


7,什么时候应该使用finally块?

finally块⼀般用于执行无论是否发生异常 都需要执行的代码,例如释放资源、关闭连接等。在异常处理过程中,finally块中的代码总会被执行保证资源的释放


8,什么是异常处理的最佳实践?

异常处理的最佳实践包括 尽早捕获异常准确抛出异常避免空的catch块适当使用finally块理解并合理使用异常类型等


9,Error和Exception有什么区别?

Error 是指 虚拟机相关的问题 或者 系统级别的问题,⼀般由虚拟机处理。Exception是指程序运行时出现的异常,需要程序员处理


10,什么是断言(assertion)和断言异常?

断言用于 在程序中 进行验证调试,通常用于在开发过程中检查程序的正确性。断言异常是⼀种特殊的异常,如java.lang.AssertionError用于表示断言失败


11,什么是异常处理的原则?

异常处理的原则包括 “捕获并处理异常”“仅捕获那些你能处理的异常”“尽量不要捕获太宽泛的异常类型”“使用合适的日志记录异常”


12,描述⼀下finally块中的return语句会如何影响方法的返回值?

如果在finally块中使用了return语句,会覆盖在try块中使用的return语句,即以finally块中的return值为准


13,什么是异常的传递?

异常的传递是指 当⼀个方法 抛出异常时,该异常会沿着调用栈向上传递直到被捕获或者到达程序的顶层


14,什么是异常的过滤?

异常的过滤 是指 在catch块中通过条件判断来筛选和处理特定的异常情况


15,在catch块中如何处理多个异常?

可以使用多个catch块来处理不同的异常类型,或者使用⼀个catch块来处理多个异常类型,使用多个“|” 分隔异常类型


16,什么是堆栈轨迹(Stack Trace)?

堆栈轨迹是指异常抛出时输出的⼀系列方法调用的信息,包括方法名、行号等,用于追踪异常发生的路径


17,如何自定义异常?

可以通过继承Exception 或者RuntimeException类 来创建 自定义异常类并添加相应的构造方法其他属性。

18,说⼀下NullPointerException和ArrayIndexOutOfBoundsException异常

NullPointerException 是指 访问 空对象的属性或方法时 抛出的异常,ArrayIndexOutOfBoundsException 是指 访问数组越界时 抛出的异常。


19,如何处理异常时避免内存泄漏?

可以在catch块中及时释放资源尤其是对于输入输出流、数据库连接等需要手动关闭的资源


20,异常处理与错误码处理方式有何不同?

异常处理 是⼀种 以异常对象的形式表示程序执行中遇到的异常情况的方式,而错误码处理则是根据不同的情况 返回 不同的预定的错误码


http://www.lryc.cn/news/179069.html

相关文章:

  • ShardingSphere|shardingJDBC - 在使用数据分片功能情况下无法配置读写分离
  • char s1[len + 1]; 报错说需要常量?
  • 【Linux】CentOS-6.8超详细安装教程
  • 【Java 进阶篇】MySQL启动与关闭、目录结构以及 SQL 相关概念
  • Android 11.0 mt6771新增分区功能实现一
  • LiveData简单使用
  • 手动实现Transformer
  • leetcode456 132 Pattern
  • WordPress外贸建站Astra免费版教程指南(2023)
  • Vue之ElementUI实现登陆及注册
  • 网络代理的多面应用:保障隐私、增强安全和数据获取
  • 字节一面:深拷贝浅拷贝的区别?如何实现一个深拷贝?
  • 协议-TCP协议-基础概念02-TCP握手被拒绝-内核参数-指数退避原则-TCP窗口-TCP重传
  • PDF文件压缩软件 PDF Squeezer mac中文版​软件特点
  • VS+Qt+opencascade三维绘图stp/step/igs/stl格式图形读取显示
  • 如何在Ubuntu中切换root用户和普通用户
  • 从零开始之了解电机及其控制(10)空间矢量理论
  • PSINS工具箱学习(一)下载安装初始化、SINS-GPS组合导航仿真、习惯约定与常用变量符号、数据导入转换、绘图显示
  • 国庆day1---消息队列实现进程之间通信方式代码,现象
  • wdb_2018_2nd_easyfmt
  • 服务器数据恢复-zfs下raidz多块磁盘离线导致服务器崩溃的数据恢复案例
  • 云服务器 CentOS7 操作系统上安装Jpress (Tomcat 部署项目)
  • 【Linux】完美解决ubuntu18.04下vi不能使用方向键和退格键
  • Android studio “Layout Inspector“工具在Android14 userdebug设备无法正常使用
  • Kafka(一)使用Docker Compose安装单机Kafka以及Kafka UI
  • 网络知识点之-MSTP平台
  • Azure AD混合部署,通过 Intune 管理设备,实现条件访问
  • 2023/09/30
  • 顶级人工智能会议接收率及信息
  • NLP 01(介绍)