throw/throws 关键字
一、throws 作用throws写在方法声明处用于声明该方法有可能抛出某种异常把异常交给调用这个方法的人去处理。一句话区分throws 是声明异常自己不捕获抛给上层调用者。 和 try-catch 的区别try-catch 是当场捕获处理throws 是甩锅交给调用方处理。二、语法格式修饰符 返回值 方法名(参数列表) throws 异常类名1,异常类名2...{ // 方法体 }多个异常逗号隔开写的是异常类名。三、代码示例public class ThrowsDemo { // 在方法上声明本方法可能抛出算术异常 public static void test() throws ArithmeticException { int a 10; int b 0; int res a / b; // 发生异常不在这里捕获抛给调用者 } public static void main(String[] args) { // 方式1main方法继续throws异常交给JVM不推荐程序直接崩溃 // public static void main(String[] args) throws ArithmeticException // 方式2调用处用try-catch捕获推荐 try { test(); } catch (ArithmeticException e) { System.out.println(捕获到test方法抛出来的除零异常); } } }四、受检异常编译期异常和运行时异常 throws 区别运行时异常RuntimeException 及其子类如空指针、算术异常方法上写 throws 可以省略编译不报错运行才会抛出。受检异常编译异常IOException 等代码必须处理要么 try-catch 捕获要么方法上加 throws 声明否则编译直接报错。示例受检异常必须 throws 或者捕获import java.io.FileReader; import java.io.IOException; public class ThrowsCheckedDemo { // IOException是受检异常必须声明throws或者内部try-catch public static void readFile() throws IOException { FileReader fr new FileReader(test.txt); } public static void main(String[] args) { try { readFile(); } catch (IOException e) { e.printStackTrace(); } } }五、方法重写时 throws 规则重点子类重写父类方法时throws 有严格限制子类抛出的异常不能比父类更大可以抛出更少、更小的异常父类方法没有 throws子类重写时不能抛出受检异常运行时异常不受这条限制。六、throws 注意事项throws 只是声明可能性不会主动产生异常真正异常还是代码执行出错才产生仅仅声明 throws不会自动捕获和修复 bug调用带有 throws 的方法调用者二选一继续往上 throws使用 try-catch 捕获处理不要在 main 方法滥用 throws会让异常直接交给 JVM程序直接终止。七、throws 与 throw 前置对比下一节学 throwthrows方法声明上声明可能抛出异常后跟异常类可多个throw方法体内手动创建并抛出异常对象后跟异常对象一次只能抛一个。八、核心口诀throws 写在方法头声明异常往外丢 调用方要做选择要么捕获要么丢 编译异常强制管运行异常随便留 子类重写有约束异常不能放大流。Java 学习笔记throw 关键字一、throw 作用throw在方法内部手动创建一个异常对象主动抛出这个异常。适用场景业务逻辑不符合预期手动抛出异常比如传入参数非法。二、语法格式throw new 异常类名(异常提示信息);throw 后面必须是异常对象一次只能抛出 1 个异常。三、代码示例public class ThrowDemo { public static void checkAge(int age) { if(age 0 || age 120){ // 手动创建异常对象并抛出 throw new RuntimeException(年龄不合法必须在0~120之间); } System.out.println(年龄校验通过); } public static void main(String[] args) { try { checkAge(-10); } catch (RuntimeException e) { System.out.println(捕获异常 e.getMessage()); } } }四、throw throws 组合使用手动 throw 受检异常方法上必须用 throws 声明否则编译报错public class ThrowThrowsDemo { public static void test() throws Exception { throw new Exception(手动抛出编译期异常); } public static void main(String[] args) { try { test(); } catch (Exception e) { e.printStackTrace(); } } }五、throw 关键点throw 是主动抛出代码执行到这里立刻抛出后面代码不再执行抛出受检异常必须配合 throws 声明或者内部 try-catch抛出运行时异常不需要 throws 声明throw 一次只能抛出一个异常对象六、throws 和 throw 对比表关键字书写位置作用后跟内容数量throws方法声明后面声明方法可能出现异常异常类名逗号分隔多个多个throw方法体内部主动抛出一个异常实例new 出来的异常对象只能 1 个七、易错点throw 不要和 throws 混淆throw 抛出异常后本行之后代码不会执行业务校验场景大量使用 throw自定义异常也会用到。八、核心口诀throw 写在方法内手动抛出异常体 一旦抛出就终止后续代码不执行 受检异常要声明throws 配套写方法。

相关新闻

宠物门禁端侧AI落地解析:画质检测、活体甄别与离线推理

宠物门禁端侧AI落地解析:画质检测、活体甄别与离线推理

宠物门禁做不好的原因,多数被归到"识别准确率不够"。但从工程角度看,身份比对是链路最后一环,真正决定成败的是它前面的两段:输入质量与运行时环境。本文从宠物门禁的产品逻辑出发,分析其识别链路&#xff0…

2026/10/12 5:50:26 阅读更多 →
GCC 11.4.0源码编译指南:从configure到make的完整流程与避坑

GCC 11.4.0源码编译指南:从configure到make的完整流程与避坑

简介:gcc-11.4.0.tar.gz 是 GNU 编译器集合 11.4.0 版本的官方源码包,面向需要在 Linux/Unix 环境下自行编译安装 GCC 的开发者、系统工程师及编译原理学习者。它解决了从源码构建工具链、定制编译选项与优化策略的需求,适合具备一定 C/C 基础…

2026/10/12 5:50:26 阅读更多 →
Django REST framework实战解析:从序列化器到API治理的核心价值

Django REST framework实战解析:从序列化器到API治理的核心价值

前几天有位朋友问我:项目里已经用了Django,前后端分离时直接写个View函数返回JsonResponse不就行了,为什么还要再学一套Django REST framework?平时看文档总觉得它绕,序列化器、视图集、路由器一堆概念,不知…

2026/10/12 5:50:26 阅读更多 →

最新新闻

DeepSeek开源算力地基:FlashMLA与DeepEP如何加速国产大模型?

DeepSeek开源算力地基:FlashMLA与DeepEP如何加速国产大模型?

先说明一下我的第一反应:看到“致敬,DeepSeek 最新开源的不是模型,是国产算力的地基”这个标题,我以为是又一个大模型权重开源了。结果点进仓库一看,里面没有模型文件,躺着的全是 FlashMLA、DeepEP、DeepGE…

2026/10/12 7:08:08 阅读更多 →
NumPy随机函数与广播机制:维度对齐、代码实战与踩坑全解

NumPy随机函数与广播机制:维度对齐、代码实战与踩坑全解

【day 48】随机函数与广播机制,打卡到这个组合的时候,我明显感觉身边不少同学开始卡壳了:随机函数单独用没问题,广播规则单独看也能理解,但真到写代码的时候,要么随机生成的数组形状对不上,要么…

2026/10/12 7:08:08 阅读更多 →
MTCNN人脸检测详解:P-Net、R-Net、O-Net三级网络训练与部署实战

MTCNN人脸检测详解:P-Net、R-Net、O-Net三级网络训练与部署实战

简介:面向深度学习和计算机视觉研究者,这份完整代码基于MTCNN级联卷积网络实现人脸检测,清晰覆盖P-Net候选框提议、R-Net边界框精修、O-Net关键点定位的完整流程。包体共80个文件,以Python源码为核心,包含48个py文件&a…

2026/10/12 7:08:08 阅读更多 →
物联网通信技术选型与架构设计:从链路预算到协议栈的工程实践指南

物联网通信技术选型与架构设计:从链路预算到协议栈的工程实践指南

干了十几年通信,最明显的感觉是:打电话的人越来越少,问"能不能帮我把这个箱子里的定位数据传回来"的人越来越多。物联网这个概念被炒了很多年,别人看到的是智能家居、智慧城市、大风口,我看到的是另一件事—…

2026/10/12 7:08:08 阅读更多 →
MyBatis查询功能全解析:从动态SQL到性能优化的实战指南

MyBatis查询功能全解析:从动态SQL到性能优化的实战指南

项目标题: MyBatis各种查询功能用到一定年头你就会发现,MyBatis的查询功能说难不难,说简单也绝不是写个select标签就完事。日常开发里,动态条件、分页、多表嵌套、批量操作,任何一个场景都能写出好几种不同写法,而每种…

2026/10/12 7:08:08 阅读更多 →
老毛桃UEFI启动盘v7.0:稳过Secure Boot,原生支持NVMe与Win11架构识别

老毛桃UEFI启动盘v7.0:稳过Secure Boot,原生支持NVMe与Win11架构识别

简介:老毛桃U盘启动盘制作工具(UEFI版 装机版)v7.0是一款面向电脑初学者与系统维护人员的轻量级系统辅助工具,专为快速制作兼容UEFI与传统BIOS的U盘启动盘、安装原版Windows系统及执行PE环境下的故障排查而设计。资源包共2个文件&…

2026/10/12 7:07:08 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →