* * * * * * * * * * * * * * * 自定义异常示例 class AgeException extends Exception { //用户自定义年龄异常类 public AgeException() { //构造方法 super(年龄无效。); } } public class Test { public static void main(String[] args) { try { int age = Integer.parseInt(args[0]); if (age 0 || age 100) { throw (new AgeException()); //抛出自定义异常类实例 } System.out.println(您的年龄是: + age + 岁。); } catch (AgeException ae) { //捕捉自定义异常类型 System.out.println(ae.getMessage()); //打印异常信息 } } } throws关键字 如果某个函数中的代码有可能引发异常,可以使用try/catch块进行处理,这种处理方式成为“内部处理”; 如果不方便在函数内部进行处理,也可以将异常往函数外部传递,这就要使用到关键字throws; throws用于将函数内部产生的异常抛给主调函数; 一般语法: 返回值类型 函数名(参数列表) throws 异常类型 { …… } throws关键字示例 public class Student //定义学生类 { private String name; //姓名 private int age; //年龄 …… //其它方法,代码略 /*为姓名赋值的方法*/ public void setName(String name) { mName = name; } /*为年龄赋值的方法,该方法有可能抛出异常*/ public void setAge(int age) throws AgeException { if (age 0 || age 100) { throw (new AgeException()); } age = age; } …… //其它方法,代码略 } 调用带有throws的函数1 当调用带有throws关键字的函数时,则必须放在 try/catch块中进行监控,否则编译器将会报错; public class ThrowsTest { public static void main(String[] args) { Student std = new Student(); try { std.setName(zhangsan); std.setAge(24); //该方法必须放在try/catch块中 std.display(); } catch (AgeException ae) { System.out.println(ae.getMessage()); } } } 调用带有throws的函数2 同样地,如果不便进行监控处理,也可以继续使用throws往外抛出异常,但不太推荐此种做法。 public class ThrowsTest { public static void main(String[] args) throws AgeException { Student std = new Student(); std.setName(zhangsan); std.setAge(180); //对该函数不进行监控,只是将异常继续往外抛 std.display(); } } 总结 异常是运行时产生的错误; 可以使用try/catch/finally块,配合使用来处理异常; 如有多种类型的异常要进行处理,可以使用多重catch块; 要手动发生异常,使用throw关键字; 任何抛到函数外部的异常,都必须使用throws关键字指定其异常类型; 请注意throw和throws的区别; 自定义异常类一般继承于Exceptio
您可能关注的文档
- ATV12 培训教程幻灯片.ppt
- AutoCAD Civil 3D功能培训课件.pptx
- A尽职调查报告幻灯片.ppt
- Atkins广州铁路新客站地区规划方案.ppt
- banner巡展制作相关知识节点.pptx
- BBES建筑电气解决方案BBES-Bentley Building Electrical Systems.pptx
- Bentley在铁路行业中的应用专题讲座.ppt
- BOSCH DMS培训 系统基础介绍课件.pptx
- C650普通卧式车床电气控制1课件.ppt
- CAMRY混合动力车身电气MPX仪表多功能显示空调.ppt
- 汉字部件部首归类方法对小学生汉字认知发展的促进作用研究课题报告教学研究课题报告.docx
- 智能化教育背景下小学教师队伍结构优化与动态调整的实证分析教学研究课题报告.docx
- 初中英语写作中连接词使用与跨学科内容融合的探索研究课题报告教学研究课题报告.docx
- 初中英语写作中假设逻辑推理的跨学科融合实验教学研究课题报告.docx
- 生成式AI助力下的中小学美术校本教研模式创新研究教学研究课题报告.docx
- 初中生对AI情感识别技术认知操控风险的防范意识课题报告教学研究课题报告.docx
- 小学美术教育中人工智能驱动的学习目标动态调整策略探讨教学研究课题报告.docx
- 城市社区养老服务与社区养老服务的智能化发展研究教学研究课题报告.docx
- 初中历史事件交互游戏化设计课题报告教学研究课题报告.docx
- 基于虚拟现实技术的虚拟仿真教学在工程教育中的应用教学研究课题报告.docx
原创力文档

文档评论(0)