• java面试强基(10)


     

    Exception 和 Error 有什么区别? 

    在 Java 中,所有的异常都有一个共同的祖先 java.lang 包中的 Throwable 类。Throwable 类有两个重要的子类:

    • Exception :程序本身可以处理的异常,可以通过 catch 来进行捕获。Exception 又可以分为 Checked Exception (受检查异常,必须处理) 和 Unchecked Exception (不受检查异常,可以不处理)。
    • Error :Error 属于程序无法处理的错误 。例如 Java 虚拟机运行错误(Virtual MachineError)、虚拟机内存不够错误(OutOfMemoryError)、类定义错误(NoClassDefFoundError)等 。这些异常发生时,Java 虚拟机(JVM)一般会选择线程终止。

     

    Checked Exception 和 Unchecked Exception 有什么区别? 

    Checked Exception 即受检查异常 ,Java 代码在编译过程中,如果受检查异常没有被 catch或者throws 关键字处理的话,就没办法通过编译。

    除了RuntimeException及其子类以外,其他的Exception类及其子类都属于受检查异常 。常见的受检查异常有: IO 相关的异常、ClassNotFoundException 、SQLException...。

    Unchecked Exception 即 不受检查异常 ,Java 代码在编译过程中 ,我们即使不处理不受检查异常也可以正常通过编译。

    RuntimeException 及其子类都统称为非受检查异常,常见的有(建议记下来,日常开发中会经常用到):

    • NullPointerException(空指针错误)
    • IllegalArgumentException(参数错误比如方法入参类型错误)
    • NumberFormatException(字符串转换为数字格式错误,IllegalArgumentException的子类)
    • ArrayIndexOutOfBoundsException(数组越界错误)
    • ClassCastException(类型转换错误)
    • ArithmeticException(算术错误)
    • SecurityException (安全错误比如权限不够)
    • UnsupportedOperationException(不支持的操作错误比如重复创建同一用户)

     

    Throwable 类常用方法有哪些? 

    • String getMessage(): 返回异常发生时的简要描述
    • String toString(): 返回异常发生时的详细信息
    • String getLocalizedMessage(): 返回异常对象的本地化信息。使用 Throwable 的子类覆盖这个方法,可以生成本地化信息。如果子类没有覆盖该方法,则该方法返回的信息与 getMessage()返回的结果相同
    • void printStackTrace(): 在控制台上打印 Throwable 对象封装的异常信息

  • 相关阅读:
    【Vue面试题五】说说你对Vue生命周期的理解?
    python3-端口扫描(TCP_ACK扫描,NULL扫描,windows扫描,xmas扫描)
    《LeetCode力扣练习》代码随想录——链表(两两交换链表中的节点---Java)
    PAT 1006 Sign In and Sign out
    Vulhub 刷题(一)
    安装.net framework报错“...扩展属性不一致”
    重读《纳瓦尔宝典》精彩语录及感悟篇(一)
    TI AM335x继任者?AM6254性能解析
    Redis-cli 查询中文数据乱码问题
    入手评测R7 6800u和i7 1165g7差距 r76800u和i71165g7对比
  • 原文地址:https://blog.csdn.net/m0_62436868/article/details/128011033