• 面试理论篇三


    关于异常机制篇

    异常描述

    注:自用

    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,异常处理与错误码处理方式有何不同?

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


  • 相关阅读:
    MySQL---索引+事务
    同花顺_代码解析_交易系统_J01_08
    2-(13/24)_输入系统_输入系统_Dispatcher线程_分发dispatch
    Python爱好者的自我修养(1):简单输入与输出
    vue移动端项目渲染pdf步骤
    外辐射源雷达信号模型
    拓端tecdat|R语言社区主题检测算法应用案例
    【限时免费】20天拿下华为OD笔试之 【回溯】2023B-找到它【欧弟算法】全网注释最详细分类最全的华为OD真题题解
    XLua热更新框架原理和代码实战
    [附源码]计算机毕业设计JAVA小说网站的设计与实现1
  • 原文地址:https://blog.csdn.net/m0_69604107/article/details/133395169