Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

Java入门(12) 事件与错误处理

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  在这时,我们定义了一个Frame,这个我们学习过了,不会多说。

  3)


frame1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});

  这段程序是本节最重要的内容。它为容器frame1增加了一个有关window(窗口)的事件监测器。监测的事件是什么?是windowClosing,也就是按下关闭按钮。

  如果监测到这个按钮被按下时,就执行System.exit(0)退出程序。

  4)


frame1.setSize(200,200);
frame1.show();

  这两句语句,大家应该也不会陌生,我们先将Frame设置为200*200大,然后调用show方法将其显示出来。

  自测练习

  1) 当一个部件有一个事件发生,但并没有为这个部件的这个事件指定事件监测器,将会发生什么?________________。

  a.编译时就不会通过 b.引起Java程序发生致命错误

  c.忽略这个事件 d.引发默认的事件处理

  2) 通常我们使用____________方法来为一个部件增加事件监视器。

  a.addXXXListener b.XXXListener

  3) 事件监视器包含在_____________包中。

  a.java.awt.happen b.java.until c.java.awt.event

  4) 按钮按下事件名是__________。

  a.PressedEvent b.ActionEvent

  5) 在Java应用程序(Application)中不能够使用JButton对象?_______。

  a.对 b.错

  6) 仅有GUI部件可以产生事件?___________。

  a.对 b.错

  请说明理由:

  ____________________________________________________________________

  练习答案

  1)c 这个事件将被忽略,因为Java中并不存在默认的事件处理。当然也不会使Java程序异常退出,Java还不至于如此脆弱吧!

  2)a 当你遇到这种形式的语句,就是增加事件监测器。

  3)c 在java.awt.event和javax.swing.event中。

  4)b ActionEven。

  5)b 虽然我们一直都在以Applet为例,但这不证明,Application中不能够使用这些GUI部件。我们完全可以使用这个GUI部件组成一个Application程序。

  6)b 这是一种错觉,最简单的例子就是Frame,它是容器呀,其实还有许多东西可以发生事件。

  12.2错误处理

  传授新知

  “世界上并不存在完全无错的程序”,我们不讨论它是不是一条真理。但它的确是一条警语,它告诫我们在编写程序时一定要注意尽可能地避免错误。

  程序运行出错时会超出程序员的控制,使得程序“南辕北辙”,不仅无法正常完成功能,而且还会出现一些可怕的事情。

  注意:

  由于程序设计的错误而引起的事故数不胜数,损失最巨大的是美国的一次火箭发射,在那次悲剧中,在程序中由于错把“,”写成了“;”,却使得火箭在天上爆炸,所以为防止程序设计错误花再大的人力、物力也是应该的。

  最有效的解决方法是在程序设计是,有意识地加入一些机制,使其能够在运行时检测自己,在错误失控之前,报告出来。

  最常见的一种错误处理是为每一个方法(其它语言,就是每一个函数)返回一个状态值,用来指示该方法是否成功、正确地完成了任务。当调用这个方法的程序收到了一个错误的状态值,就能够得知程序出错了,再采取有效的措施避免这个错误引起的问题(最简单的方法就是退出程序,或给出提示提醒操作者)。

  下面我们来考察一下简单的例子:


public int getIndex(String emailaddr)
{
for(int x=0;x

  这个方法用来在emailaddr字符串中找到“@”符所在的位置,然后返回位置值。但细心的读者应该能够很快地提出一个问题:假如emailaddr中没有“@”符,那么这个程序将返回什么呢?

  对,这就是潜在的错误可能。当emailaddr中没有“@”符时,不管返回什么值,可以确定的一点就是返回的值一定不正确!

  然后,调用这个方法的程序并不知道它得到了一个错误的返回呀!它会当作一个正确的值继续运行下去。糟了,“多米诺骨牌”启动了!一个错误引发了。

  所以,我们应该在这种时候,给调用这个方法的程序一个提示,那就是返回一个明确的错误值,比如在这里我们可以使用-1来表示没找到。使用这种思想,我们将程序改写一下,形成:


public int getIndex(String emailaddr)
{
for(int x=0;x

  我们在原来的程序中加上了一句:return(-1),这时程序的逻辑发生了变化,当找到时“@”符时,将返回它所在的位置。而如果找不到,那么就会执行:return(-1)。

  然后我们在调用这个方法的程序收到的返回值是-1时,就能够意识到错误发生了。

  自测练习

  1) 请创建一个方法,在整数数组intArray查找是否有一个成员为5,有就返回它的位置。并且请注意加上一些错误处理机制。

  ____________________________________________________________________

  ____________________________________________________________________

  ____________________________________________________________________

  ____________________________________________________________________

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 23 下一页


上一篇:GDK Reference Manual   下一篇:Java入门(4) 第一个Java程序

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
·Motorola微处理器bootloader分析与应用
·Fedora Core5 NFS服务器搭建过程介绍
·Linux系统:让内存不再泄漏的实用技巧
·新手看招 手把手教你安装VMware虚拟机
·“侵权事件” 红帽称微软企图干扰用户
·删除Linux后 如何找回Windows启动菜单
·菜鸟乐园 Linux中常见文件系统格式介绍
·Linux操作系统下IPTables配置方法详解
·实用技巧 Linux系统的经典使用技巧八则
·Linux系统文件优化及磁盘检查方法介绍
推荐文章
·XML和JSP的联手(1)
·Java调试教程--使用Jikes进行调试(
·Sendmail第一章 概论
·datetime类型简介
·Linux作NEWS服务器
·CDN 内容分发网络技术
·JAVA系列讲座3(基础篇之管理应用程
·JSP专题:第二部分:JAVA服务小程序
精彩文章
·Ant实践
·Unix/Linux下的软件包生成器----EPM
·Kylix功能概要
·和luster一起学习java编程(3)
·Linux 指令篇:档案目录管理--chmod
·Linux命令Man解释:chfn :改变你的fi
·我的qmail安装历程  
·[网卡]如何驱动Davicom 9201网卡?
·软件工程文档规范--前景文档
·Jaz-drive HOWTO -- 4. Jaz 磁片的
·流量控制系列手册页:tc
·什么是 Linux?
·Linux操作系统中安装和试用IE、Offi
·一个网上理财站点的设计(十六)
·GCC常用命令描述
·Linux 指令篇:磁片工具--mformat
·系统启动脚本分析(1)
·Linux 核心--15.Linux内核资源
·X-Window中如何设置字体
·Linux中IP隧道的分析与建议
·[显卡]如何驱动intel i740显卡
·Linu系统管理 新手要了解的十个知识
·一个Session Bean的示例
·Linux 运行级init详解
·简易防火墙建置与流量统计之二
·BEAN在JSP中应用
Power by linux-cn.com 粤ICP备05006655号