Java 异常处理机制,一篇全搞定
异常一、概念异常的结构体系二、异常的分类Error和Exception的区别RuntimeException和CheckedException1. CheckedException受检异常/编译时异常2. RuntimeException运行时异常/非受检异常三、异常的处理方式1. throw、throwsthrows声明异常throw手动抛出异常2. try-catch捕获异常finally注意四、Throw和throws的区别1. 位置不同2. 功能不同一、概念如果某个方法不能按照正常的途径完成任务就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时这个方法会立刻退出同时不返回任何值。另外调用这个方法的其他代码也无法继续执行异常处理机制会将代码执行交给异常处理器。简单来说就是为了当程序发生异常时可以按照代码预先设定好的异常逻辑来针对性地处理异常让程序尽大可能的恢复正常并继续执行且保持代码的清晰异常的结构体系二、异常的分类Error和Exception的区别Exception 和 Error 都是 Throwable 类的直接子类只有继承了 Throwable 的对象才能被 throw 和catch。核心区别:Exception 代表程序运行过程中可以预料、可以恢复的异常情况属于业务逻辑范畴能够被合理处理Error 指的是Jvm⽆法解决的严重问题应用程序不会抛出该类对象,⽐如JVM的内部错误、资源耗尽等典型代表StackOverflowError和OutOfMemoryError⼀旦发⽣回⼒乏术简单来说Exception是可以处理的程序异常Error是系统级不可恢复错误RuntimeException和CheckedExceptionException又 有 两 个 分 支 一个是运行时异常RuntimeException一 个是编译时异常CheckedException1. CheckedException受检异常/编译时异常定义编译期就必须处理的异常否则代码无法运行特点程序可预见、可处理不是代码逻辑错误举例IOException文件异常、SQLException数据库异常、ClassNotFoundException处理必须try-catch或throws抛出2. RuntimeException运行时异常/非受检异常定义运行时才抛出编译期不强制处理特点代码逻辑错误导致修复代码即可避免举例NullPointerException空指针、IndexOutOfBoundsException越界、ArithmeticException算术异常处理不强制处理优先改代码而非捕获异常一句话总结CheckedException外部问题编译强制处理RuntimeException代码BUG运行才报错不用强制捕获三、异常的处理方式1. throw、throwsthrows声明异常作用甩锅告诉调用者 “我这里可能出异常你来处理”位置写在方法声明上特点不处理异常只是声明语法publicvoid方法名()throws异常1,异常2{// 代码}throw手动抛出异常作用主动制造一个异常位置写在方法内部特点手动触发异常常和条件判断一起用语法if(条件){thrownew异常(异常提示);}简单来说throw、throws都是遇到问题不进行具体处理而是继续抛给调用者不进行处理就会报错程序停止2. try-catch捕获异常作用自己处理异常不让程序崩溃位置写在方法内部特点真正处理异常的代码语法try{// 可能出错的代码}catch(异常类型 e){// 处理异常}简单来说try 里的代码正常运行 → 不进 catchtry 里一报错 → 立刻跳到 catchcatch 抓住后 → 程序继续往下跑不会停finally不论程序是否发⽣异常都需要执⾏,因为异常会引发程序的跳转可能导致有些语句执⾏不到finally就是⽤来解决这个问题的语法try{// 可能报错的代码}catch(异常 e){// 报错了才执行}finally{// 不管报不报错100% 必执行}注意return 不会立刻结束方法执行顺序永远是try 里的代码 → finally 代码 → 最后 return所以如果说finally里面有return那么就会执⾏finally中的return,从⽽不会执⾏到try中原有的returnpublicstaticinttest(){try{return10;}finally{// finally 里写 returnreturn100;}}结果100四、Throw和throws的区别1. 位置不同Throw和throws的区别throws 用在函数上后面跟的是异常类可以跟多个而throw用在函数内后面跟的是异常对象。2. 功能不同throws 用来声明异常让调用者只知道该功能可能出现的问题可以给出预先的处理方式throw抛出具体的问题对象执行到throw功能就已经结束了跳转到调用者并将具体的问题对象抛给调用者。也就是说 throw 语句独立存在时下面不要定义其他语句因为执行不到。throws 表示出现异常的一种可能性并不一定会发生这些异常throw 则是抛出了异常执行throw则一定抛出了某种异常对象。两者都是消极处理异常的方式只是抛出或者可能抛出异常但是不会由函数去处理异常真正的处理异常由函数的上层调用处理。

相关新闻

无人机精准降落技术:UWB与视觉融合的智能引导系统

无人机精准降落技术:UWB与视觉融合的智能引导系统

1. 精准降落,为什么单靠GPS或视觉都不够? 大家好,我是老张,在无人机和智能硬件这行摸爬滚打了十几年,经手过不少项目。今天想和大家聊聊一个听起来很专业,但其实对很多无人机应用至关重要的技术——精准降落…

2026/7/3 23:07:30 阅读更多 →
从实验数据看无人机动力系统:电机KV值与螺旋桨匹配的5个关键指标

从实验数据看无人机动力系统:电机KV值与螺旋桨匹配的5个关键指标

从实验数据看无人机动力系统:电机KV值与螺旋桨匹配的5个关键指标 当你面对一堆电机和螺旋桨,试图为你的无人机项目寻找最佳动力组合时,是否曾感到迷茫?KV1000还是KV800?9450还是1045桨?这些数字背后&#…

2026/7/4 6:54:05 阅读更多 →
PaddleMIX革新扩散模型推理:FLUX-Lightning结合CINN编译器实现1.66秒极速图像生成

PaddleMIX革新扩散模型推理:FLUX-Lightning结合CINN编译器实现1.66秒极速图像生成

1. 从“慢工出细活”到“秒出神图”:为什么我们需要极速扩散模型? 不知道你有没有这样的体验:看到别人用AI生成的图片惊为天人,自己兴冲冲地打开一个开源模型,输入一段精心构思的描述,然后……就开始对着进…

2026/7/4 10:12:22 阅读更多 →

最新新闻

抖店AI标题优化怎么用标题违规和低质标题怎么改

抖店AI标题优化怎么用标题违规和低质标题怎么改

抖店AI标题优化怎么用?标题违规和低质标题怎么改 抖店商品标题写不好,会影响审核、搜索理解和买家点击。很多商家从 1688 搬标题时,原标题里带批发词、品牌词、极限词、无关热词,直接上架容易违规,也不一定适合抖店买家…

2026/7/5 4:29:15 阅读更多 →
如何3分钟完成通达信缠论插件部署:终极自动化分析指南

如何3分钟完成通达信缠论插件部署:终极自动化分析指南

如何3分钟完成通达信缠论插件部署:终极自动化分析指南 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 还在为复杂的缠论分析而烦恼吗?面对繁琐的笔段划分和中枢识别,传…

2026/7/5 4:27:15 阅读更多 →
接口自动化测试项目框架详解

接口自动化测试项目框架详解

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 在选择接口测试自动化框架时,需要根据团队的技术栈和项目需求来综合考虑。对于测试团队来说,使用Python相关的测试框架更为便捷。无论选…

2026/7/5 4:25:15 阅读更多 →
单片机IWIP 原子云实验

单片机IWIP 原子云实验

单片机 :STM32F407 开发板:DMF407电机开发板 平台:keil V5.31HSE 为8MHZ HSI为16MHZ主函数int main(void) {HAL_Init(); /* 初始化HAL库 */sys_stm32_clock_init(336, 8, 2, 7); /* 设置时钟,168Mhz */delay_init…

2026/7/5 4:25:15 阅读更多 →
Nano Banana部署Gemini 2.5 Flash:ARM+NPU边缘多模态推理实战指南

Nano Banana部署Gemini 2.5 Flash:ARM+NPU边缘多模态推理实战指南

1. 项目概述:这不是一个“升级包”,而是一套可落地的嵌入式AI推理工作流 你手头有一块 Nano Banana 开发板——它不是树莓派,也不是 Jetson Nano,而是基于全志 H616 芯片、带双千兆网口、4GB LPDDR4、支持 PCIe 2.0 x1 的国产小钢…

2026/7/5 4:23:15 阅读更多 →
3分钟掌握Crontab UI:告别命令行恐惧的Linux定时任务可视化管理神器

3分钟掌握Crontab UI:告别命令行恐惧的Linux定时任务可视化管理神器

3分钟掌握Crontab UI:告别命令行恐惧的Linux定时任务可视化管理神器 【免费下载链接】crontab-ui Easy and safe way to manage your crontab file 项目地址: https://gitcode.com/gh_mirrors/cr/crontab-ui 还在为复杂的crontab语法而烦恼吗?Cro…

2026/7/5 4:19:14 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻