news 2026/6/13 18:37:52

Java异常机制核心知识点详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java异常机制核心知识点详解

本文详细讲解Java异常机制核心知识点,涵盖异常体系结构、处理方式(try-catch-finally、throws)、自定义异常、throw与throws区别、常见运行时异常。

一、异常概述

异常是程序在运行过程中出现的错误或不正常情况,会中断程序的正常执行流程。
Java采用异常处理机制,让程序出现问题时可以优雅处理,而不是直接崩溃。

二、异常体系结构

所有异常的根类:java.lang.Throwable

两大子类:

  1. Error(错误)

    • 系统级别、JVM级别的严重问题
    • 程序无法处理,如:StackOverflowError、OutOfMemoryError
    • 无需捕获处理
  2. Exception(异常)

    • 程序可以捕获和处理的问题
    • 分为编译时异常运行时异常

1. 编译时异常(受检异常)

  • 必须在编译阶段处理,否则代码无法运行
  • 如:IOException、SQLException、ClassNotFoundException

2. 运行时异常(非受检异常)

  • 运行阶段才会抛出,编译不强制检查
  • 如:NullPointerException、IndexOutOfBoundsException、ArithmeticException
  • 一般由代码逻辑错误导致

三、异常处理方式一:try-catch-finally

1. 标准格式

try{// 可能出现异常的代码}catch(异常类型 变量名){// 捕获到异常后执行的处理逻辑}finally{// 无论是否异常,最终都会执行(释放资源常用)}

2. 代码演示

publicclassTryCatchDemo{publicstaticvoidmain(String[]args){try{// 可能出现异常的代码inta=10;intb=0;System.out.println(a/b);// 算术异常}catch(ArithmeticExceptione){// 捕获异常并处理System.out.println("捕获到算术异常:除数不能为0");e.printStackTrace();// 打印异常堆栈信息}finally{System.out.println("finally代码块最终一定会执行");}System.out.println("程序继续向下执行");}}

3. 多catch捕获

try{// 代码}catch(NullPointerExceptione){// 空指针处理}catch(IndexOutOfBoundsExceptione){// 越界处理}catch(Exceptione){// 其他异常}

四、异常处理方式二:throws 声明抛出

将异常抛给上层调用者处理,自己不处理。

publicclassThrowsDemo{// 抛出异常,交给调用者处理publicstaticvoidtest()throwsException{inta=10;intb=0;System.out.println(a/b);}publicstaticvoidmain(String[]args){try{test();}catch(Exceptione){e.printStackTrace();}}}

五、throw 手动抛出异常

在程序中主动抛出一个异常。

publicclassThrowDemo{publicstaticvoidcheckAge(intage){if(age<0||age>150){// 手动抛出异常thrownewIllegalArgumentException("年龄不合法:"+age);}}}

六、throw 和 throws 区别

  1. throw

    • 方法内部使用
    • 手动抛出一个异常对象
    • 抛出一个具体异常
  2. throws

    • 方法声明上使用
    • 将异常交给调用者处理
    • 可以声明多个异常

七、自定义异常

  1. 继承Exception(编译时异常)
  2. 继承RuntimeException(运行时异常)
// 自定义年龄非法异常publicclassAgeIllegalExceptionextendsRuntimeException{publicAgeIllegalException(){}publicAgeIllegalException(Stringmessage){super(message);}}

使用自定义异常

publicstaticvoidcheck(intage){if(age<0){thrownewAgeIllegalException("年龄不能为负数");}}

八、常见运行时异常

  1. NullPointerException空指针异常
  2. IndexOutOfBoundsException索引越界异常
  3. ArithmeticException算术异常
  4. IllegalArgumentException参数非法异常
  5. ClassCastException类型转换异常
  6. NumberFormatException数字格式转换异常

九、finally 关键字特点

  1. 无论是否发生异常,finally一定执行
  2. 唯一不执行情况:JVM退出(System.exit(0))
  3. 常用于:IO流关闭、数据库连接释放、资源回收
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 18:36:08

2026免费在线抠图工具推荐|6款高效AI去背景工具使用攻略

在日常内容创作、电商运营、平面设计和证件制作场景中,AI抠图是高频刚需操作。传统PS手动抠图门槛高、耗时长,对新手和非专业从业者十分不友好。随着AI技术迭代,各类免费在线抠图工具层出不穷,无需下载软件、无需专业技巧,依托无需PS一键抠图技术,就能快速完成去背景、精细化修…

作者头像 李华
网站建设 2026/6/13 18:35:00

MC56F81xxxL DSC PWM模块输入捕获与故障保护实战指南

1. 项目概述与核心价值 在电机控制、数字电源或者任何需要精确时序和快速保护的嵌入式实时系统中&#xff0c;PWM模块的深度掌控往往是区分“能用”和“好用”的关键。NXP的MC56F81xxxL系列DSC&#xff08;数字信号控制器&#xff09;内置的增强型灵活PWM模块&#xff0c;远不止…

作者头像 李华
网站建设 2026/6/13 18:31:02

终极Steam成就管理工具:3步快速解锁游戏全成就

终极Steam成就管理工具&#xff1a;3步快速解锁游戏全成就 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager 还在为Steam游戏中那些难以达成的成就而烦恼吗&…

作者头像 李华
网站建设 2026/6/13 18:29:05

Legacy iOS Kit终极指南:让旧款iOS设备重获新生的完整教程

Legacy iOS Kit终极指南&#xff1a;让旧款iOS设备重获新生的完整教程 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit …

作者头像 李华
网站建设 2026/6/13 18:26:24

深入解析M68HC11A8片上存储器:RAM重映射与EEPROM安全编程实战

1. 项目概述&#xff1a;深入M68HC11的“记忆宫殿” 在嵌入式开发的江湖里&#xff0c;选对微控制器&#xff08;MCU&#xff09;只是第一步&#xff0c;真正决定项目成败的&#xff0c;往往是开发者对MCU内部资源的理解深度。其中&#xff0c;片上存储器——这片集成在硅片上的…

作者头像 李华