- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11-Java异常处理机制
* * * * * * * * * StringOperation.java * * * * SalaryException.java Coder.java CoderTest.java * throws关键字示例 /*为年龄赋值的方法,该方法有可能抛出异常*/ public void setAge(int age) throws AgeException { if (age 0 || age 100) { throw (new AgeException()); } age = age; } 调用带有throws的函数 当调用带有throws关键字的方法时,必须进行异常处理,否则编译器将会报错 try { std.setName(zhangsan); //该方法可能会抛出异常,必须处理 std.setAge(24); std.display(); } catch (AgeException ae) { System.out.println(ae.getMessage()); } 调用带有throws的函数 同样地,如果不便进行监控处理,也可以继续使用throws往外抛出异常 public static void main(String[] args) throw AgeException { Student std = new Student(); std.setName(zhangsan); //对该函数不进行监控,只是将异常继续往外抛 std.setAge(180); std.display(); } 编程练习 编写一个字符串运算类(StringOperation)中的字符串除法方法(StringDive(String str1, String str2)),其作用是将两个字符串参数转换成整数,然后相除,并将运算结果返回 当出现ArithmeticException异常时,要求捕获并输出异常信息,同时将运算结果置为0 当出现NumberFormatException异常时,要求捕获并输出异常信息,同时将运算结果置为0 当出现其它异常时,将其抛出,并将运算结果置为0 无论是否出现异常,最后都要输出提示信息“Computation over!”,并给出返回值 用户自定义异常 Exception类和其子类都是系统内置的异常,这些异常不一定总能捕获程序中发生的所有异常; 有时候,我们可能要创建用户自定义的异常类; 用户自定义异常类应该是Exception类的子类; 类似于: class MyException extends Exception { …… } 自定义异常示例 //用户自定义年龄异常类 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()); //打印异常信息 } } } 编程练习 创建一个程序员类,添加属性:姓名、年龄、年薪 定义年薪异常类:当年薪小于30000或是大于600,000时,输出提示信息“该年薪水平不合理” 对年薪属性进行封装,对设置年薪的方法使用throws抛出异常 创建测试类,创建一个程序员对象,并为程序员设置年薪 总结 异常是运行时产生的错误 可以使用try/catch/finally块来处理异常 如有多种类型的异常要进行处理,可以使用多重catch块 要手动发生异常,使用throw关键字 任何抛到函数外部的异常,都必须使用throws关键字指定其异常类型 自定义异常类一般继承于Exception类 Exception类是绝大部分异常类的父类,在异常类型不
文档评论(0)