发布时间 : 星期一 文章第4章面向对象(下)_补充案例课件更新完毕开始阅读
博学谷——让IT教学更简单,让IT学习更有效
}
}
}
System.out.println(\释放资源\
运行结果如图4-17所示。
图4-17 错误提示
三、案例总结
无论是否发生异常,finally代码块是一定会执行的。但是需要注意的是,finally中的代码块在一种情况下不会执行,那就是在执行到finally语句之前执行了System.exit(0)语句。
案例4-18 throws关键字 一、案例描述
1、 考核知识点
编 号:00104013
名 称:throws关键字
2、 练习目标
? 掌握如何使用throws关键字
3、 需求分析
Java中允许在方法的后面使用throws关键字对外声明该方法有可能发生的异常,这样调用者在调用方法时,就明确地知道该方法有异常,并且必须在程序中对异常进行处理,否则编译无法通过。为了让初学者熟悉throws关键字,本案例将演示如何使用throws关键字。
4、 设计思路(实现原理) 1) 编写一个类Example18
2) 在该类中定义方法div()用于进行除法运算,运算前对被除数进行判断,如果等于0,使用throws
抛出异常对象,否则进行正常的除法运算。
3) 由于throw抛出了非运行时异常,为了保证编译通过,我们需要在方法名后面使用throws声明抛
出异常类。
2)在main方法中调用div()方法,并通过try…catch…语句处理抛出的异常。
25
博学谷——让IT教学更简单,让IT学习更有效
二、案例实现
public class Example18 { }
public static void main(String[] args) { }
public static int div(int x, int y) throws Exception { }
// 如果除数传递了0进来,这个程序就出现了异常 if (y == 0) { }
return x / y;
// 发生异常自己不处理,谁调用谁处理 // 需要在方法上进行抛出: throws 异常类 throw new Exception();
System.out.println(\除法运算开始\try {
div(1, 0);
} catch (Exception e) { }
System.out.println(\除法运算结束\
System.out.println(\处理运算异常\
运行结果如图4-18所示。
图4-18 运行结果
三、案例总结
1、throws关键字声明抛出异常的语法格式如下:
修饰符 返回值类型 方法名([参数1,参数2.....])throws ExceptionType1[,ExceptionType2.....]{ }
2、throws关键字需要写在方法声明的后面,throws后面需要声明方法中发生异常的类型,通常将这种做法称为方法声明抛出一个异常。
26
博学谷——让IT教学更简单,让IT学习更有效
案例4-19 自定义异常 一、案例描述
1、 考核知识点
编 号:00104015 名 称:自定义异常 2、 练习目标
? 掌握如何自定义异常
3、 需求分析
Java中定义的异常有限,如果想描述程序中特有的异常情况,就需要自定义异常。为了让初学者熟悉自定义异常,本案例将自定义一个名为MyException的异常类来演示如何自定义异常。 4、 设计思路(实现原理)
1)自定义名为MyException的异常类,继承自Exception类。
2)在Example19类中进行除法运算,判断当除数为零时,抛出自定义的异常类 3)在main()方法中处理异常。
二、案例实现
1、编写自定义异常类,代码如下:
class MyException extends Exception { }
private int number;
MyException(String message) { }
MyException(String message, int number) { }
public int getNumber() { }
return number; super(message); this.number = number; super(message);
2、抛出异常和处理异常,代码如下:
public class Example19 {
public static void main(String[] args) {
try {
divide(20, 0);
} catch (MyException my) { }
27
System.out.println(\你给的除数是:\而我们要求是:\
+ my.getMessage());
博学谷——让IT教学更简单,让IT学习更有效
}
}
public static int divide(int a, int b) throws MyException { }
if (b = 0) { }
throw new MyException(\除数不能为零\return a / b; } else {
运行结果如图4-19所示。
图4-19 运行结果
三、案例总结
1、在Java中允许用户自定义异常,但自定义的异常类必须继承自Exception或其子类。 2、throw关键字用于在方法中声明抛出异常的实例对象,其语法格式如下:
throw Exception异常对象
3、main()方法中,定义了一个try…catch语句用于捕获divide()方法抛出的异常。在调用divide()方法时由于传入的被除数不能为零,程序会抛出一个自定义异常MyException,该异常被捕获后最终被catch代码块处理,并打印出异常信息。
案例4-20 import引入指定类 一、案例描述
1、 考核知识点
编 号:00104017 名 称:import语句
2、 练习目标
? 掌握如何使用import引入指定类
3、 需求分析
不同包下的类互相调用时,一般会使用import关键字引入包。为了方便初学者的学习,本案例将演示如何使用import引入指定类。
4、 设计思路(实现原理)
1) 在D:\\samplePackage\\chapter04 文件夹下新建Student.java文件
2) 打开文件编写Student类,类中定义int类型的变量sid,String类型的变量name和double类型的
变量score,分别表示学生id,学生姓名和分数。
2)Student类定义构造器及一个evaluation()方法,该方法用于评定学生是否为三好学生,得分大于90
28