如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
教学重点与难点:9.1异常处理9.1.1异常分类Throwable类派生出两个分支:Error和Exception。Error类被认为是不能恢复的严重错误,如系统内部错误和资源耗尽错误等。不应该抛出这种类型的错误,而是让程序中断。Exception类定义可能遇到的轻微错误,分为派生自RuntimeException类的异常和非派生自RuntimeException类的异常。这时,可以写代码来处理异常并继续程序执行,而不是让程序中断。区分RuntimeException和非RuntimeException的规则是:编程错误导致RuntimeException,如被零除、数组越界访问、空指针访问等;而其他异常则是由于意外情况而发生的,如试图读取文件结尾以后的数据、试图打开错误的URL、试图根据并不代表已存在类的字符串来查找Class对象等。9.1.2方法如何抛出异常9.1.3捕获及处理异常【例9.1】捕获并处理异常程序代码见ExceptionExample.java。运行结果如下:CaughttheException!!!e.getMessage():IthrowanException!!!9.1.4创建自己的异常类9.2Java多线程机制【例9.5】未使用多线程技术的记数程序。当单击“Start”按钮时,屏幕上方的文本框开始递增记数,从0到49。在记数过程单击“Close”按钮不起作用,记数依然在继续;当记数到49时,程序退出。程序代码见Counter.java。运行结果如下:9.2.1创建线程9.2.2实现多个线程9.2.3线程的状态9.2.4Runnable接口【例9.8】通过Runnable接口实现多个记数线程的Java小应用程序。程序代码见CounterThreadApplet.java。运行结果如下:9.3流式输入输出与文件处理9.3.1Java输入输出类库继承关系处理Unicode字符的输入输出类层次关系图9.3.2基于标准输入输出的IO操作【例9.10】结构化数据输入输出和数据分隔。程序代码见TokenStandardIO.java。运行结果如下:Thenumber1personEntername,age,salary,married(optional),pleaseseparatefieldsby':‘张三:25:3000Thenumber2personEntername,age,salary,married(optional),pleaseseparatefieldsby':‘李四:35:10000:YThenumber3personEntername,age,salary,married(optional),pleaseseparatefieldsby':‘王大五:30:4000:FOutputthedataofpeople:Thenumber1personname:张三;age:25;salary:3000.0;married:FThenumber2personname:李四;age:35;salary:10000.0;married:YThenumber3personname:王大五;age:30;salary:4000.0;married:F9.3.3文件读写及随机访问Thenumber1personEntername,age,salary,married(optional),pleaseseparatefieldsby':'张三:25:3000Thenumber2personEntername,age,salary,married(optional),pleaseseparatefieldsby':'李四:35:10000:YThenumber3personEntername,age,salary,married(optional),pleaseseparatefieldsby':'王大五:30:4000:FPerson[name=张三,age=25,salary=3000.0,married=F]Person[name=李四,age=35,salary=10000.0,married=Y]Person[name=王大五,age=30,salary=4000.0,married=F]同时,当前目录下应有文件“people.dat”,其内容为:3张三:25:3000.0:F李四:35:10000.0:Y王大五:30:4000.0:F【例9.12】文件随机访问。先把定长的记录写入文件中,然后逆序读取并显示,在修改文件的最后一条记录后,再写入文件。程序代码见FileRandomRW.java。程序执行后