- 浏览: 201714 次
- 性别:
- 来自: 包头
-
最新评论
-
chengeng:
图片没有显示。
登录系统-基于struts2+spring+hibernate分层架构 -
chengeng:
不知为什么,图片没有显示出来。
登录系统-基于struts2+spring+hibernateJPA分层架构 -
rdz09:
解析得很详细,不错
从头学起:struts2(1) -
zxd543:
图怎么都看不见呢?
登录系统-基于struts2+spring+hibernate分层架构 -
huweijie:
...
JAVA语言程序设计-第九章 异常处理
一、实验目的
了解 Java 中包(package)、接口(interface)和异常处理(exception)的作用,掌握包、接口、
异常处理的设计方法。
二、实验要求
1. 了解 Java 系统包的结构。
2. 掌握创建自定义包的方法。
3. 掌握使用系统接口的技术和创建自定义接口的方法。
4. 理解系统异常处理的机制和创建自定义异常的方法。
三、实验内容
(一)了解并使用 Java 的系统包
包是类和接口的集合。利用包可以把常用的类或功能相似的类放在一个包中。Java 语言提供系统 包,其中包含了大量的类,可以在编写 Java 程序时直接引用它们。为便于管理和使用它们,将这些类 分为了不同的包。包又称类库或 API 包,所谓 API(Application Program Interface)即应用程序接口。API 包—方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统 软硬件打交道,圆满实现用户程序的功能。所有 Java API 包都以“java.”开头,以区别用户创建的包。
接口解决了 Java 不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。
处理程序运行时的错误和设计程序同样重要,只有能够完善处理运行时出错的程序,软件系统才 能长期稳定地运行,异常处理就是说明如何处理程序运行时出错的问题。
(二)创建并使用自定义包
1.自定义包的声明方式
<package> <自定义包名>
声明包语句必须添加在源程序的第一行,表示该程序文件声明的全部类都属于这个包。
2.创建自定义包 Mypackage
在存放源程序的文件夹中建立一个子文件夹 Mypackage。例如,在“E:\java\程序”文件夹之中
创建一个与包同名的子文件夹 Mypackage(E:\java\程序\Mypackage),并将编译过的 class 文件放入该文件夹中。注意:包名与文件夹名大小写要一致。再添加环境变量 classpath 的路径,例如:
E:\j2sdk1.4.2_01\lib; E:\java\程序
3.在包中创建类
• YMD.java 程序功能:在源程序中,首先声明使用的包名 Mypackage,然后创建 YMD 类,该类 具有计算今年的年份,可以输出一个带有年月日的字符串的功能。
• 编写 YMD.java 文件,源代码如下。
package Mypackage; //声明存放类的包
import java.util.*; //引用 java.util 包
public class KY4_1_YMD {
private int year,month,day;
public static void main(String[] arg3){}
public KY4_1_YMD(int y,int m,int d) {
year = y;
month = (((m>=1) & (m<=12)) ? m : 1);
day = (((d>=1) & (d<=31)) ? d : 1);
}
public KY4_1_YMD() {
this(0,0,0);
}
public static int thisyear() {
return Calendar.getInstance().get(Calendar.YEAR);//返回当年的年份
}
public int year() {
return year;//返回年份
}
public String toString(){
return year+"-"+month+"-"+day;//返回转化为字符串的年-月-日
}
}
• 编译 KY4_1_YMD.java 文件,然后将 KY4_1_YMD.class 文件存放到 Mypackage 文件夹中。
3.编写使用包 Mypackage 中 KY4_1_YMD 类的程序
• KY4_2.java 程序功能:给定某人姓名与出生日期,计算该人年龄,并输出该人姓名,年龄,出生日期。程序使用了 KY4_1_YMD 的方法来计算年龄。
• 编写 KY4_2.java 程序文件,源代码如下。
import Mypackage.KY4_1_YMD; //引用 Mypackage 包中的 KY4_1_YMD 类
public class KY4_2
{
private String name;
private KY4_1_YMD birth;
public static void main(String args[])
{
KY4_2 a = new KY4_2("张驰",1990,1,11);
a.output();
}
public KY4_2(String n1,KY4_1_YMD d1)
{
name = n1;
birth = d1;
}
public KY4_2(String n1,int y,int m,int d)
{
this(n1,new KY4_1_YMD(y,m,d));//初始化变量与对象
}
public int age() //计算年龄
{
return KY4_1_YMD.thisyear() - birth.year(); //返回当前年与出生年的差即年龄
}
public void output()
{
System.out.println("姓名 : "+name);
System.out.println("出生日期: "+birth.toString());
System.out.println("今年年龄 : "+age());
}
}
• 编译并运行程序,结果如图 4.3 所示。
(三)使用接口技术
1.实现 MouseListener 和 MouseMotionListener 两个接口
• 编写实现接口的程序文件 KY4_3.java,源代码如下。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class KY4_3 extends Applet implements MouseListener, MouseMotionListener {
int x1, y1, x2, y2;
public void init() {
addMouseListener(this);
addMouseMotionListener(this);
}
public void paint(Graphics g) {
g.drawLine (x1, y1, x2, y2);
}
public void mousePressed(MouseEvent e) { // 记录起点坐标
x1=e.getX();
y1=e.getY();
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseDragged(MouseEvent e) { // 记录终点坐标
x2=e.getX();
y2=e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) {}
}
• 编译 KY4_3.java 文件。
• 编写 KY4_3.html 文件,源代码如下。
<html>
<applet codebase=e:/java/程序 code=KY4_3.class width=320 height=180>
</applet >
</html>
(5)在浏览器中打开 KY4_3.html 文件,在窗口中拖动鼠标可以随意画出一条线
(四)了解异常处理机制
1. 编写使用 try…catch 语句处理异常的程序文件 KY4_4.java,源代码如下。
public class KY4_6{
public static void main(String[] arg3) {
System.out.println("这是一个异常处理的例子\n");
try {
int i=10;
i /=0;
}
catch (ArithmeticException e) {
System.out.println("异常是:"+e.getMessage());
}
finally {
System.out.println("finally 语句被执行");
}
}
}
编译并运行程序
注意:如果在 catch 语句中声明的异常类是 Exception,catch 语句也能正确地捕获,这是因为
Exception是ArithmeticException的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch
的参数为 Exception,即说明异常的类型为 Exception。
2. 编写包含多个 catch 子句的 KY4_8.java 程序,源代码如下。
public class KY4_5{
public static void main(String[] args) {
try {
int a=args.length;
System.out.println("\na = "+a);
int b=42/a;
int c[]={1};
c[42]=99;
}
catch (ArithmeticException e) {
System.out.println("发生了被 0 除:"+e);
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组下标越界:"+e);
}
}
}
了解 Java 中包(package)、接口(interface)和异常处理(exception)的作用,掌握包、接口、
异常处理的设计方法。
二、实验要求
1. 了解 Java 系统包的结构。
2. 掌握创建自定义包的方法。
3. 掌握使用系统接口的技术和创建自定义接口的方法。
4. 理解系统异常处理的机制和创建自定义异常的方法。
三、实验内容
(一)了解并使用 Java 的系统包
包是类和接口的集合。利用包可以把常用的类或功能相似的类放在一个包中。Java 语言提供系统 包,其中包含了大量的类,可以在编写 Java 程序时直接引用它们。为便于管理和使用它们,将这些类 分为了不同的包。包又称类库或 API 包,所谓 API(Application Program Interface)即应用程序接口。API 包—方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统 软硬件打交道,圆满实现用户程序的功能。所有 Java API 包都以“java.”开头,以区别用户创建的包。
接口解决了 Java 不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。
处理程序运行时的错误和设计程序同样重要,只有能够完善处理运行时出错的程序,软件系统才 能长期稳定地运行,异常处理就是说明如何处理程序运行时出错的问题。
(二)创建并使用自定义包
1.自定义包的声明方式
<package> <自定义包名>
声明包语句必须添加在源程序的第一行,表示该程序文件声明的全部类都属于这个包。
2.创建自定义包 Mypackage
在存放源程序的文件夹中建立一个子文件夹 Mypackage。例如,在“E:\java\程序”文件夹之中
创建一个与包同名的子文件夹 Mypackage(E:\java\程序\Mypackage),并将编译过的 class 文件放入该文件夹中。注意:包名与文件夹名大小写要一致。再添加环境变量 classpath 的路径,例如:
E:\j2sdk1.4.2_01\lib; E:\java\程序
3.在包中创建类
• YMD.java 程序功能:在源程序中,首先声明使用的包名 Mypackage,然后创建 YMD 类,该类 具有计算今年的年份,可以输出一个带有年月日的字符串的功能。
• 编写 YMD.java 文件,源代码如下。
package Mypackage; //声明存放类的包
import java.util.*; //引用 java.util 包
public class KY4_1_YMD {
private int year,month,day;
public static void main(String[] arg3){}
public KY4_1_YMD(int y,int m,int d) {
year = y;
month = (((m>=1) & (m<=12)) ? m : 1);
day = (((d>=1) & (d<=31)) ? d : 1);
}
public KY4_1_YMD() {
this(0,0,0);
}
public static int thisyear() {
return Calendar.getInstance().get(Calendar.YEAR);//返回当年的年份
}
public int year() {
return year;//返回年份
}
public String toString(){
return year+"-"+month+"-"+day;//返回转化为字符串的年-月-日
}
}
• 编译 KY4_1_YMD.java 文件,然后将 KY4_1_YMD.class 文件存放到 Mypackage 文件夹中。
3.编写使用包 Mypackage 中 KY4_1_YMD 类的程序
• KY4_2.java 程序功能:给定某人姓名与出生日期,计算该人年龄,并输出该人姓名,年龄,出生日期。程序使用了 KY4_1_YMD 的方法来计算年龄。
• 编写 KY4_2.java 程序文件,源代码如下。
import Mypackage.KY4_1_YMD; //引用 Mypackage 包中的 KY4_1_YMD 类
public class KY4_2
{
private String name;
private KY4_1_YMD birth;
public static void main(String args[])
{
KY4_2 a = new KY4_2("张驰",1990,1,11);
a.output();
}
public KY4_2(String n1,KY4_1_YMD d1)
{
name = n1;
birth = d1;
}
public KY4_2(String n1,int y,int m,int d)
{
this(n1,new KY4_1_YMD(y,m,d));//初始化变量与对象
}
public int age() //计算年龄
{
return KY4_1_YMD.thisyear() - birth.year(); //返回当前年与出生年的差即年龄
}
public void output()
{
System.out.println("姓名 : "+name);
System.out.println("出生日期: "+birth.toString());
System.out.println("今年年龄 : "+age());
}
}
• 编译并运行程序,结果如图 4.3 所示。
(三)使用接口技术
1.实现 MouseListener 和 MouseMotionListener 两个接口
• 编写实现接口的程序文件 KY4_3.java,源代码如下。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class KY4_3 extends Applet implements MouseListener, MouseMotionListener {
int x1, y1, x2, y2;
public void init() {
addMouseListener(this);
addMouseMotionListener(this);
}
public void paint(Graphics g) {
g.drawLine (x1, y1, x2, y2);
}
public void mousePressed(MouseEvent e) { // 记录起点坐标
x1=e.getX();
y1=e.getY();
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseDragged(MouseEvent e) { // 记录终点坐标
x2=e.getX();
y2=e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) {}
}
• 编译 KY4_3.java 文件。
• 编写 KY4_3.html 文件,源代码如下。
<html>
<applet codebase=e:/java/程序 code=KY4_3.class width=320 height=180>
</applet >
</html>
(5)在浏览器中打开 KY4_3.html 文件,在窗口中拖动鼠标可以随意画出一条线
(四)了解异常处理机制
1. 编写使用 try…catch 语句处理异常的程序文件 KY4_4.java,源代码如下。
public class KY4_6{
public static void main(String[] arg3) {
System.out.println("这是一个异常处理的例子\n");
try {
int i=10;
i /=0;
}
catch (ArithmeticException e) {
System.out.println("异常是:"+e.getMessage());
}
finally {
System.out.println("finally 语句被执行");
}
}
}
编译并运行程序
注意:如果在 catch 语句中声明的异常类是 Exception,catch 语句也能正确地捕获,这是因为
Exception是ArithmeticException的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch
的参数为 Exception,即说明异常的类型为 Exception。
2. 编写包含多个 catch 子句的 KY4_8.java 程序,源代码如下。
public class KY4_5{
public static void main(String[] args) {
try {
int a=args.length;
System.out.println("\na = "+a);
int b=42/a;
int c[]={1};
c[42]=99;
}
catch (ArithmeticException e) {
System.out.println("发生了被 0 除:"+e);
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组下标越界:"+e);
}
}
}
发表评论
-
确认对话框ConfirmDialog和选择对话框OptionDialog:猜数游戏
2012-04-07 18:22 30937确认对话框ConfirmDialog给出提示信息和若干 ... -
输入对话框showInputDialog综合应用:猜数游戏
2012-04-06 17:13 7246Java输入对话框共有6个重载方法showInputDi ... -
消息对话框MessageDialog综合应用:九九表
2012-04-01 23:39 22601java信息对话框:MessageDialog是一个非常 ... -
从头学起:struts2(1)
2011-12-15 23:10 1425从头学起:struts2(1)从页面跳转说起:先看一个例子,使 ... -
登录系统-基于struts2+spring+hibernateJPA分层架构
2011-12-08 21:27 19191、新建一个mysql数据库,并新建连接,数据库结构如下图所示 ... -
登录系统-基于struts2+spring+hibernate分层架构
2011-11-29 21:43 34551、创建mysql数据库,结构如下图所示: 2、 ... -
依赖注入入门-从dao到service
2011-11-23 18:30 8194在分层的web应用系统中,通常将数据操作分为dao数据层和se ... -
登录系统-基于struts2+hibernate分层架构
2011-11-21 23:07 296本实验使用struts+hibernate分层结构,目的是可以 ... -
登录系统-基于servlet+hibernate分层架构
2011-11-21 12:13 3226本实验使用servlet+hibernate分层结构,目的是 ... -
登录系统-基于struts2的分层架构
2011-11-19 21:48 28171.下载支持Netbeans7.0的Struts2插件,在工具 ... -
登录系统-基于servlet
2011-11-19 19:48 31771. 新建一个web项目,在项目中添加两个包:Ja ... -
登录系统-基于servlet+hibernate
2011-11-19 19:01 42151.新建一个java web项目,在步骤4中选择Hiber ... -
基于NetBeans7.0的Hibernate编程入门
2011-11-19 11:47 1542基于NetBeans7.0的 Hebernate入门 ... -
实验13 数据库的连接:JDBC*
2011-03-28 22:02 1279一、实验目的 了解JDBC核心API,利用JDBC核心API ... -
实验14 JSP与Servlet技术*
2011-03-28 22:01 1309一、实验目的 1. 理解JSP元素的概念 2. 理解JSP ... -
实验12 网络编程
2011-03-28 21:59 1248一、实验目的 1. 掌握InetAddress类的使用。 2 ... -
实验11 线程
2011-03-28 21:59 904一、实验目的 1. 线程 ... -
实验10 流与文件
2011-03-28 21:58 1024一、实验目的 1. 理解数据流的概念 2. 理解Java流的 ... -
实验 9 综合练习
2011-03-28 21:57 821一、实验目的 将所学知识进行综合运用,模仿设计具有实 ... -
实验 8 图形与多媒体处理
2011-03-28 21:56 937一、实验目的 熟悉图形、图像的使用方法,理解计算机动画 ...
评论