Java程序设计基础第6章 Java异常处理
- 格式:ppt
- 大小:429.50 KB
- 文档页数:28
《Java程序设计》课程标准课程名称: Java程序设计课程性质:专业必修课学分: 4计划学时: 72课时适用专业:软件技术1.前言1.1课程定位JAVA程序设计是学生进入大学后学习的第二门计算机语言,属于专业必修课。
它是软件技术专业中的一门职业基础课程,旨在培养学生的基础编程能力,为以后的 Android 课程打好基础。
学生的基础打好对以后的实训及就业会有很大帮助。
软件技术专业的培养目标是培养出既要有熟练的掌握软件编程的动手操作能力,又要具备对软件工程的规范进行开发和基本的软件架构能力。
能够独立解决面临任务、充满活力、有创新意识的软件技能型人才。
重视基本知识、基本理论和基本技能的传授,注重先进实用技能的学习和学生专业可持续自我发展能力的培养及综合素质的提高。
1.2设计思路本课程坚持以能力为本位的设计原则,将面向对象程序设计的基本理论与实践技术相结合,把软件工程的思想融入到教学体系中,从基础理论及工程应用实践的角度出发培养学生的逻辑与编程思维、养成良好的程序设计习惯,掌握编程的基本方法,培养学生使用程序设计语言解决实际问题的能力。
使学生具备良好的专业技能和职业素养,形成具有优势的职业岗位竞争力。
打破以知识传授为主要特征的传统学科课程模式,转变为以工作任务为中心组织课程内容,并让学生在完成具体项目的过程中学会完成相应工作任务,并构建相关理论知识,发展职业能力。
课程内容突出对学生职业能力的训练,理论知识的选取紧紧围绕工作任务完成的需要来进行,同时又充分考虑了高等职业教育对理论知识学习的需要,并融合了相关职业资格证书对知识、技能和态度的要求。
项目设计以学生编程能力的培养为线索来进行。
教学过程中,要通过校企合作、校内实训基地建设等多种途径,采取工学结合、课程设计等形式,充分开发学习资源,给学生提供丰富的实践机会。
教学效果评价采取过程性评价与结果性评价相结合,理论与实践相结合,理论考试重点考核与实践能力紧密相关的知识,重点评价学生的职业能力。
Java程序设计基础课后习题参考答案第2章1. 关于Java Application 的入口方法main()的检验:main()方法的参数名是否可以改变main()方法的参数个数是否可以改变该方法名是否可以改变参考答案:(1)main()方法的参数名可以改变。
(2)main()方法的参数个数不可以改变。
(3)该方法名不可以改变。
2. 当一个程序没有main()方法时,能编译吗如果能编译,能运行吗参考答案:当一个程序没有main()方法是,是可以编译通过的,但是不能给运行,因为找不到一个主函数入口。
3. 下列语句能否编译通过byte i = 127;byte j = 128;long l1 = 999999;long l2 = 99;参考答案:byte i 和 long l1可以编译通过。
而 byte j 和long l2 超出自身数据类型范围,所以编译失败。
4. 下列语句能否编译通过float f1 = ;float f2 = 3.5f;参考答案:java中浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,必须在数据后面加上“F”或“f”;因此,float f1 无法编译通过。
5. 验证int 和char,int和double等类型是否可以相互转换。
参考答案:(1)char类型可以转换为int 类型的,但是int类型无法转换为char 类型的;(2)int 可以转换为 double类型的,但是double类型无法转换为int 类型的。
6. 计算下列表达式,注意观察运算符优先级规则。
若有表达式是非法表达式,则指出不合法之处且进行解释。
(1) 4+5 == 6*2 (2) (4=5)/6(3) 9%2*7/3>17 (4) (4+5)<=6/3(5) 4+5%3!=7-2 (6) 4+5/6>=10%2参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4是不合法的。
第六章软件开发一、单项选择1.给定如下所示的JAVA代码,则运行时,会产生哪种类型的异常()String s = null;s.concat( "追加的字符串");A. ArithmeticExceptionB. NullPointerExceptionC. IOExceptionD. ClassNotFoundException参考答案:B答案解析:空值的字符串变量无法进行追加字符串运算。
A选项为数学运算异常;C选项为输入输出异常;D选项为未找到类定义的异常。
知识点:税务系统业务能力升级测试大纲(信息技术类)-专业知识与技能—第六章软件开发—第二节 Web熟悉开发 4.了解Java编程。
2.为使得开发人员对软件产品的各阶段都进行周密的思考,从而减少返工,所以编制下列哪个文件是很重要的()A.需求说明B.概要说明C.软件开发文档D.测试大纲参考答案:C试题解析:软件开发文档是软件开发使用和维护过程中的必备资料。
它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导,帮助,解惑的作用,尤其在维护工作中,文档是不可或缺的资料。
知识点:税务系统业务能力升级测试大纲(信息技术类)-专业知识与技能—第六章软件开发—第一节软件开发基础知识3.下列哪个文档属于软件开发人员为用户准备的有关该软件使用、操作、维护的资料()A.开发文档B.管理文档C.用户文档D.软件文档参考答案:C试题解析:用户文档可以帮助用户掌握相关软件的使用、操作及维护。
知识点:税务系统业务能力升级测试大纲(信息技术类)-专业知识与技能—第六章软件开发—第一节软件开发基础知识4.关于中间件特点的描述,不正确的是()A.中间件可运行于多种硬件和操作系统平台上B.跨越网络、硬件、操作系统平台的应用或服务可通过中间件透明交互C.中间件运行于客户机/服务器的操作系统内核中,提高内核运行效率D 中间件应支持标准的协议和接口参考答案:C试题解析:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
java Java异常处理结构在Java中,任何异常对象都是ng.Throwable类或其子类的对象,即所有异常类型都是内置类Throwable的子类。
因此,Throwable类在异常类层次结构的顶层。
紧接着Throwable类把异常分成两个不同分支的子类:Exception类和Error类,如图8-1所示:图8-1 异常结构图由上图可以知道,Thorwable类是所有异常和错误的超类,两个Error和Exception子类,分别表示错误和异常。
其中,Exception异常类又分为运行时异常(RuntimeException)和非运行时异常,这两种异常有很大的区别,在于不检查异常(Unchecked Exception)和检查异常(Checked Exception)两种方式。
●Exception类用于用户程序可能出现的异常情况,也可以用来创建自定义异常类。
●Error类在通常环境下定义不希望被程序捕获的异常。
Error类型的异常用于Java运行时与运行系统本身有关的错误,如堆栈溢出属于该错误之一。
运行时异常都属于运行异常类及其子类异常,如尝试访问null对象成员(NullPointerException)、索引超出范围(IndexOutOfBoundsException)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。
这些异常一般由程序逻辑错误引起,程序应该从逻辑角度尽可能避免这类异常的发生。
非运行时异常是运行时异常以外的异常,类型上都属于Exception类及其子类。
从程序语法角度讲是必须进行处理的异常,如果不处理,程序则无法通过编译,如输入/输出异常(IOException)、SQL语句异常(SQLException)等以及用户自定义的Exception异常。
常用的异常类如表8-1所示。
表8-1 Java常用异常类。
《Java语言程序设计基础教程》练习思考题参考答案第1章 Java程序设计概述1.9 练习思考题1、Java运行平台包括三个版本,请选择正确的三项:()A. J2EEB. J2MEC. J2SED. J2E解答:A,B,C2、Java JDK中反编译工具是:()A. javacB. javaC. jdbD. javap解答:D3、public static void main方法的参数描述是:()A. String args[]B. String[] argsC. Strings args[]D. String args解答:A,B4、在Java中,关于CLASSPATH环境变量的说法不正确的是:()A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。
B. 编译器用它来搜索各自的类文件。
C. CLASSPATH是一个目录列表。
D. 解释器用它来搜索各自的类文件。
解答:A5、编译Java Application源文件将产生相应的字节码文件,扩展名为()A. .javaB. .classC. .htmlD. .exe解答:B6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。
7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。
8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。
9、开发与运行Java程序需要经过哪些主要步骤和过程?10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的?11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。
异常异常的定义在《java编程思想》中这样定义异常:阻止当前方法或作用域继续执行的问题。
虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常。
绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败。
之所以java要提出异常处理机制,就是要告诉开发人员,你的程序出现了不正常的情况,请注意。
记得当初学习java的时候,异常总是搞不太清楚,不知道这个异常是什么意思,为什么会有这个机制?但是随着知识的积累逐渐也对异常有一点感觉了。
调用抛出异常的方法,必须处理异常,有两种方式:1、使用try catch finally 捕获。
2、直接再抛出异常。
注:处理异常的方式依赖于具体业务逻辑,可灵活处理。
如果代码有异常发生,异常以后的代码将不再执行。
举一个例子来说明一下异常的用途。
public class Calculator {public int devide(int num1, int num2) {// 判断除数是否为0if (num2 == 0) {throw new IllegalArgumentException("除数不能为零");}return num1 / num2;}}看一下这个类中关于除运算的方法,如果你是新手你可能会直接返回计算结果,根本不去考虑什么参数是否正确,是否合法(当然可以原谅,谁都是这样过来的)。
但是我们应尽可能的考虑周全,把可能导致程序失败的"苗头"扼杀在摇篮中,所以进行参数的合法性检查就很有必要了。
其中执行参数检查抛出来的那个参数非法异常,这就属于这个方法的不正常情况。
正常情况下我们会正确的使用计算器,但是不排除粗心大意把除数赋值为0。
如果你之前没有考虑到这种情况,并且恰巧用户数学基础不好,那么你完了。
但是如果你之前考虑到了这种情况,那么很显然错误已在你的掌控之中。
异常案例:public class User {int id;String email;String pwd;public User() {}public User(int id, String email, String pwd) {super();this.id = id;this.email = email;this.pwd = pwd;}@Overridepublic String toString() {return id + "," + email;}@Overridepublic boolean equals(Object obj) {if (obj == null) {return false;}if (this == obj) {return true;}if (obj instanceof User) {User o = (User) obj;return id == o.id;}return false;}@Overridepublic int hashCode() {return id;}}-----------------------------------------------import java.util.HashMap;import java.util.Map;/*** 该类提供用户管理功能:注册和登录*/public class UserManager {// 存储user对象的集合,key是email,value是用户private Map<String, User> users = new HashMap<String, User>();private int id = 1;public User reg(String email, String pwd) throws UserExsitsException {if (users.containsKey(email)) {throw new UserExsitsException("该邮箱" + email + "已存在!");}User newuser = new User(id++, email, pwd);users.put(email, newuser);return newuser;}public User login(String email, String pwd) throws EmailOrPwdException {if (!users.containsKey(email)) {throw new EmailOrPwdException("无此用户!");}User u = users.get(email);if (!u.pwd.equals(pwd)) {throw new EmailOrPwdException("密码错误!");}return u;}}/*** 该类表示用户已注册过异常,一定继承于excetpion类* 用于表示注册时可能已经注册过异常*/class UserExsitsException extends Exception {public UserExsitsException(String message) {super(message);}}/*** 该类表示用户名或密码错误异常,一定继承于exception类* 用于表示输入的用户名或密码错误异常*/class EmailOrPwdException extends Exception {public EmailOrPwdException(String message) {super(message);}}----------------------------------------------------public class ExceptionDemo {public static void main(String[] args) throws Exception { UserManager mgr = new UserManager();User u = mgr.reg("java_manual@", "123abc");System.out.println("注册成功!");// 测试1,重复注册,出现异常u = mgr.reg("java_manual@", "123abc");// 测试2,登录密码错误,出现异常,密码不对u = mgr.login("java_manual@", "abc");// 测试3,登陆成功!User someone = mgr.login("java_manual@", "123abc");System.out.println(someone);}}注:代码调用抛出异常的方法,必须处理异常,有两种方式:1、使用try catch finally 捕获。
Java语言程序设计实验指导书目录实验一 JDK的安装和运行环境变量的设置 (3)实验二 JA V A语言基础实验 (3)实验三 JA V A面向对象特性实验 (5)实验四 Java输入输出实验 (6)实验五基于AWT及SWING的GUI及事件处理实验 (8)实验六Applet (11)附录Ⅰ (14)附录Ⅱ (15)实验一 JDK的安装和运行环境变量的设置实验目的1.通过实验使学生掌握J2SDK安装和运行环境设置。
2.掌握java最简单的程序结构,会使用javac和java命令。
实验内容1.下载j2sdk1.4.2。
在网站的download链接中选择J2SE1.4.2链接,选择j2sdk-1.4.2-04-windows-i586.exe下载。
2.安装该程序。
默认安装路径为c:\jdk1.4.2。
3.设置环境变量。
主要有path和classpath两个环境变量需设置。
在windows98中的设置方式为:使用记事本打开autoexec.bat文件,加入:SET PA TH=%PATH%;c:\jdk1.4.2\binSET CLASSPATH=.; c:\jdk1.4.2\lib在windows2000按如下方法设置:进入“控制面板”->“系统”->“高级”->“环境变量”->“系统变量”后,双击path,在后面添加:c:\jdk1.4.2\bin,双击classpath,在后面添加:c:\jdk1.4.2\lib。
重新启动系统。
4、编写一个输出“这是我的第一个JA V A程序”程序。
5、示例程序:public class HelloWorld{public static void main(String [ ] args){System.out.println(“Hello World”);}}在记事本中编写该程序,并保存为d:\my\HelloWorld.java。
运行过程为:进入dos环境,切换到保存路径,然后在命令行中输入下列命令:javac HelloWorld.java编译通过后,在命令行中输入下面的命令java HelloWorld运行结果应该为:Hello World实验二 JA V A语言基础实验实验目的1.通过实验使学生掌握JA V A变量、标识符以及语法规则。