新闻详情

新闻详情

首页 / 资讯中心 / 详情

Java自定义异常类 方法重写异常规则

发布时间:2026/9/11 22:07:06来源:尧图网络
Java自定义异常类  方法重写异常规则
一、自定义异常类Java 允许开发者根据业务需求自定义专属异常类用于处理项目中的业务异常如密码非法、账号不存在、权限不足等场景。1.1 自定义异常分类规则自定义异常的类型由父类继承关系决定自定义运行时异常自定义类继承RuntimeException或其子类 特点编译器不强制检测代码可处理、可不处理自定义编译时受检异常自定义类继承Exception与 RuntimeException 无继承关系 特点编译器强制检测代码中必须处理否则编译报错1.2 自定义异常类规范自定义异常类一般需要提供两个构造方法无参数的构造方法有参数的构造方法参数类型为 String接收异常信息利用super(message)调用父类构造为异常信息属性赋值1.3 完整代码示例密码校验自定义异常案例package Test_02; import java.util.ArrayList; import java.util.Scanner; public class TestMyException { public static void main(String[] args) { Scanner sc new Scanner(System.in); System.out.println(请输入您的密码); String pasword sc.next(); checkPassword(pasword); } //监测密码 public static void checkPassword(String psw) { try { if(psw.length()!6) { //抛出异常并且带有“此密码必须为6位”异常信息-抛出关于密码监测异常 throw new CheckedPasswordException(此密码必须为6位); } System.out.println(密码输入正确....); System.out.println(请继续一下的操作); }catch(CheckedPasswordException c) { // String message c.getMessage();//为用户做提示信息用的 // System.err.println(message); c.printStackTrace(); } } } //自定义编译期异常继承Exception class CheckedPasswordException extends Exception { public CheckedPasswordException() {} public CheckedPasswordException(String message) { super(message); } }运行测试输入长度不等于 6 的密码会手动抛出我们自定义的CheckedPasswordException异常进入 catch 块打印异常栈信息。二、方法重写Override异常约束规则2.1 方法重写基础规则子类的方法名形参列表返回值类型和父类相同协变返回除外子类的访问修饰符权限大于等于父类权限权限只能放宽不能缩小2.2 重写异常核心规则⭐面试重点一句话口诀可少、可子、不可多、不可父✅ 可以不抛出任何异常✅ 可以抛出父类抛出异常的子类异常❌ 不可以抛出比父类范围更大的异常父类异常的父类❌ 不可以抛出父类没有的新编译时异常细分说明如果父类方法没有抛出任何异常子类重写方法也不能抛出编译时异常运行时异常不受此限制可以抛出如果父类方法抛出某个异常子类重写方法只能抛出该异常、该异常的子类或者不抛异常。2.3 简单示例辅助理解class Father{ public void test() throws IOException{ //父类抛出IOException } } class Son extends Father{ // ✅合法抛出IOException子类FileNotFoundException Override public void test() throws FileNotFoundException{ } // ✅合法不抛出任何异常 /* Override public void test(){ } */ // ❌非法抛出IOException父类Exception违反规则 /* Override public void test() throws Exception{ } */ }
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Python双目立体视觉测距:从标定到毫米级距离测量 2026/9/11 22:55:15

Python双目立体视觉测距:从标定到毫米级距离测量

简介:本资源是一套完整的基于Python的双目立体视觉测距毕业设计实现方案,面向计算机、人工智能、自动化等专业的本科生及项目实践学习者,解决目标物体三维空间距离实时测量这一典型计算机视觉问题。资源包含可直接运行的图像匹配与深度测距源…

阅读更多 →
以库形式集成 Repomix:在 Node.js 应用中调用 runCli 与核心打包 API 2026/9/11 22:55:15

以库形式集成 Repomix:在 Node.js 应用中调用 runCli 与核心打包 API

以库形式集成 Repomix:在 Node.js 应用中调用 runCli 与核心打包 API 【免费下载链接】repomix 📦 Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase …

阅读更多 →
技术债务与版本判断代码的治理实践 2026/9/11 22:55:15

技术债务与版本判断代码的治理实践

1. 从if (version < 1.0)看技术债务的堆积过程我第一次见到那段传奇代码是在2017年接手一个遗留系统时。控制台里不断刷新的"Deprecated API called"警告背后&#xff0c;藏着一个长达15年的版本判断逻辑&#xff1a;if (system.getProperty("app.version&qu…

阅读更多 →
JustNews主题源码解析:社交问答插件集成与样式定制 2026/9/11 22:55:15

JustNews主题源码解析:社交问答插件集成与样式定制

简介&#xff1a;Justnews主题源码6.0.1开心版与社交问答插件2.3.1压缩包&#xff0c;是一套面向WordPress博客、自媒体及资讯类网站的主题方案&#xff0c;并为需要前端会员中心、投稿发布与社区问答功能的站长提供了一站式代码与配置。包内共441个文件&#xff0c;大小约2.12…

阅读更多 →
PyTorch实现DeepLabv3+:语义分割模型完整实战指南 2026/9/11 22:55:15

PyTorch实现DeepLabv3+:语义分割模型完整实战指南

简介&#xff1a;这是一份基于Pytorch实现DeepLabv3图像分割算法的实战项目&#xff0c;面向有一定深度学习基础、希望掌握语义分割模型训练的读者。资源在VOC与Cityscapes数据集上完成训练与预测&#xff0c;覆盖从数据加载、网络构建、损失函数到评估可视化的完整流程。压缩包…

阅读更多 →
含风电电力系统潮流计算:牛顿拉夫逊法与IEEE 30节点仿真 2026/9/11 22:52:14

含风电电力系统潮流计算:牛顿拉夫逊法与IEEE 30节点仿真

简介&#xff1a;面向电力系统潮流计算学习与研究需求&#xff0c;这份附含MATLAB源码的压缩包聚焦含风电场景下的电力潮流求解。基于牛顿拉夫逊迭代法&#xff0c;通过建立非线性方程组与雅可比矩阵修正&#xff0c;可计算各节点电压幅值、相角及支路功率分布&#xff0c;适用…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞