⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java入门(12) 事件与错误处理.htm

📁 一本很容易入手
💻 HTM
📖 第 1 页 / 共 2 页
字号:
      <BR><BR>  程序的输出是一个空白的Frame,大家现在按下关闭按钮,你会发现,这个Frame马上被关闭了。我们实现了我们的目标。 
      <BR><BR>  传授新知 <BR><BR>  下面,我们一起来看一下这个程序: <BR><BR>  1) <BR><BR><BR>public 
      static void main(String args[]) 
      <BR><BR><BR><BR>  大家应该还记得,一个Java应用程序(Application)是从main方法开始执行的吧! 
      <BR><BR>  2) <BR><BR><BR>Frame frame1=new Frame("This is a Frame"); 
      <BR><BR><BR><BR>  在这时,我们定义了一个Frame,这个我们学习过了,不会多说。 <BR><BR>  3) 
      <BR><BR><BR>frame1.addWindowListener(new WindowAdapter() <BR>{ <BR>public 
      void windowClosing(WindowEvent e) <BR>{ <BR>System.exit(0); <BR>} <BR>}); 
      <BR><BR><BR><BR>  这段程序是本节最重要的内容。它为容器frame1增加了一个有关window(窗口)的事件监测器。监测的事件是什么?是windowClosing,也就是按下关闭按钮。 
      <BR><BR>  如果监测到这个按钮被按下时,就执行System.exit(0)退出程序。 <BR><BR>  4) 
      <BR><BR><BR>frame1.setSize(200,200); <BR>frame1.show(); 
      <BR><BR><BR><BR>  这两句语句,大家应该也不会陌生,我们先将Frame设置为200*200大,然后调用show方法将其显示出来。 
      <BR><BR>  自测练习 <BR><BR>  1) 
      当一个部件有一个事件发生,但并没有为这个部件的这个事件指定事件监测器,将会发生什么?________________。 
      <BR><BR>  a.编译时就不会通过 b.引起Java程序发生致命错误 <BR><BR>  c.忽略这个事件 d.引发默认的事件处理 
      <BR><BR>  2) 通常我们使用____________方法来为一个部件增加事件监视器。 <BR><BR>  a.addXXXListener 
      b.XXXListener <BR><BR>  3) 事件监视器包含在_____________包中。 
      <BR><BR>  a.java.awt.happen b.java.until c.java.awt.event <BR><BR>  4) 
      按钮按下事件名是__________。 <BR><BR>  a.PressedEvent b.ActionEvent <BR><BR>  5) 
      在Java应用程序(Application)中不能够使用JButton对象?_______。 <BR><BR>  a.对 b.错 
      <BR><BR>  6) 仅有GUI部件可以产生事件?___________。 <BR><BR>  a.对 b.错 <BR><BR>  请说明理由: 
      <BR><BR>  ____________________________________________________________________ 
      <BR><BR>  练习答案 <BR><BR>  1)c 
      这个事件将被忽略,因为Java中并不存在默认的事件处理。当然也不会使Java程序异常退出,Java还不至于如此脆弱吧! <BR><BR>  2)a 
      当你遇到这种形式的语句,就是增加事件监测器。 <BR><BR>  3)c 在java.awt.event和javax.swing.event中。 
      <BR><BR>  4)b ActionEven。 <BR><BR>  5)b 
      虽然我们一直都在以Applet为例,但这不证明,Application中不能够使用这些GUI部件。我们完全可以使用这个GUI部件组成一个Application程序。 
      <BR><BR>  6)b 这是一种错觉,最简单的例子就是Frame,它是容器呀,其实还有许多东西可以发生事件。 
      <BR><BR>  12.2错误处理 <BR><BR>  传授新知 
      <BR><BR>  “世界上并不存在完全无错的程序”,我们不讨论它是不是一条真理。但它的确是一条警语,它告诫我们在编写程序时一定要注意尽可能地避免错误。 
      <BR><BR>  程序运行出错时会超出程序员的控制,使得程序“南辕北辙”,不仅无法正常完成功能,而且还会出现一些可怕的事情。 
      <BR><BR>  注意: 
      <BR><BR>  由于程序设计的错误而引起的事故数不胜数,损失最巨大的是美国的一次火箭发射,在那次悲剧中,在程序中由于错把“,”写成了“;”,却使得火箭在天上爆炸,所以为防止程序设计错误花再大的人力、物力也是应该的。 
      <BR><BR>  最有效的解决方法是在程序设计是,有意识地加入一些机制,使其能够在运行时检测自己,在错误失控之前,报告出来。 
      <BR><BR>  最常见的一种错误处理是为每一个方法(其它语言,就是每一个函数)返回一个状态值,用来指示该方法是否成功、正确地完成了任务。当调用这个方法的程序收到了一个错误的状态值,就能够得知程序出错了,再采取有效的措施避免这个错误引起的问题(最简单的方法就是退出程序,或给出提示提醒操作者)。 
      <BR><BR>  下面我们来考察一下简单的例子: <BR><BR><BR>public int getIndex(String 
      emailaddr) <BR>{ <BR>for(int x=0;x 
      <BR><BR><BR>  这个方法用来在emailaddr字符串中找到“@”符所在的位置,然后返回位置值。但细心的读者应该能够很快地提出一个问题:假如emailaddr中没有“@”符,那么这个程序将返回什么呢? 
      <BR><BR>  对,这就是潜在的错误可能。当emailaddr中没有“@”符时,不管返回什么值,可以确定的一点就是返回的值一定不正确! 
      <BR><BR>  然后,调用这个方法的程序并不知道它得到了一个错误的返回呀!它会当作一个正确的值继续运行下去。糟了,“多米诺骨牌”启动了!一个错误引发了。 
      <BR><BR>  所以,我们应该在这种时候,给调用这个方法的程序一个提示,那就是返回一个明确的错误值,比如在这里我们可以使用-1来表示没找到。使用这种思想,我们将程序改写一下,形成: 
      <BR><BR><BR>public int getIndex(String emailaddr) <BR>{ <BR>for(int x=0;x 
      <BR><BR><BR>  我们在原来的程序中加上了一句:return(-1),这时程序的逻辑发生了变化,当找到时“@”符时,将返回它所在的位置。而如果找不到,那么就会执行:return(-1)。 
      <BR><BR>  然后我们在调用这个方法的程序收到的返回值是-1时,就能够意识到错误发生了。 <BR><BR>  自测练习 
      <BR><BR>  1) 请创建一个方法,在整数数组intArray查找是否有一个成员为5,有就返回它的位置。并且请注意加上一些错误处理机制。 
      <BR><BR>  ____________________________________________________________________ 
      <BR><BR>  ____________________________________________________________________ 
      <BR><BR>  ____________________________________________________________________ 
      <BR><BR>  ____________________________________________________________________ 
      <BR><BR>  ____________________________________________________________________ 
      <BR><BR>  ____________________________________________________________________ 
      <BR><BR>  在这个程序中,你使用了什么错误处理机制。 
      <BR><BR>  ____________________________________________________________________ 
      <BR><BR>  ____________________________________________________________________ 
      <BR><BR>  如果整型数组intArray的值是{2,5,6,9,10}那么,返回什么值? 
      <BR><BR>  ____________________________________________________________________ 
      <BR><BR>  如果值是{4,6,2,90,8},则返回什么值? 
      <BR><BR>  ____________________________________________________________________ 
      <BR><BR>  练习答案 <BR><BR>  1) 以下一个实例: <BR><BR><BR>public int searchfive(int 
      intArray[]) <BR>{ <BR>for(int x=0;x 
      <BR><BR><BR>  在这个程序中,我们采用了通用的错误标识机制,也就是说,找到数字5,返回它的位置,而找不到数字5时,就返回-1。这样可以让调用这个方法的程序知道这个方法的执行效果。 
      <BR><BR>  如果整型数组intArray的值是{2,5,6,9,10}那么将返回1。 
      <BR><BR>  而如果值是{4,6,2,90,8},那么将找不到5,因而返回-1。 <BR><BR>  12.3异常处理 
      <BR><BR>  传授新知 
      <BR><BR>  然而在有些情况下,合法的返回值和标识一个错误情形的返回值之间不能明确区分。这种情况下错误出现的地方,称为异常情形。这个异常错误是致命错误,经常使得程序异常退出。 
      <BR><BR>  在Java语言中,提供了一些处理这些异常情况的工具,能够较好的处理这些情况,使得Java程序更加健壮。由于这方面的内容相对比较高级,很难使用较短的篇幅来说明,所以本书(一本入门的书)仅以只言片语,与大家做一个简单的介绍。 
      <BR><BR>  1.异常处理的流程 
      <BR><BR>  在Java中,异常是由Exception类定义的对象,一旦产生异常,方法的正常控制流会立即停止,Java虚拟机(JVM)将试图找出能够捕获的处理程序并处理这个特定的异常。如果找不到处理程序,Exception对象将向上层传递,一层一层地上传,直至程序的main方法。如果还是找不到处理程序,程序将退出运行。 
      <BR><BR>  也就是说,Java已经预先定义了许多异常情况(使用Exception类定义),当程序发生异常时,Java虚拟机就会想办法寻找排除异常的办法(也就是寻找相应的处理程序),如果在当前方法中找不到,就会将这个异常情况报告给调用这个方法的程序段,然后继续寻找相应的程序。如果还找不到就再向上一层传递,直到程序的main方法。如果都找不到,程序就会异常退出。 
      <BR><BR>  2.构建异常处理的程序 <BR><BR>  那么如何来构建这个异常处理程序呢?我们可以通过try/catch程序结构来设置: 
      <BR><BR><BR>try <BR>{ <BR>…… <BR>} <BR>catch(Exception ex) <BR>{ <BR>…… 
      <BR>} 
      <BR><BR><BR><BR>  当try块内的代码产生了catch块中指定的异常就跳过try块内的后面的代码,而执行catch块内的程序。 
      <BR><BR>  而如果try块内的代码未产生catch块中指定的异常,则跳过catch块内的程序。 
      <BR><BR>  更多的内容可以参考专门的书籍。 <BR>
      <P align=right>整理发布:admin</P></TD></TR>
  <TR>
    <TD 
    style="BORDER-RIGHT: #c0c0c0 1px solid; BORDER-TOP: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; BORDER-BOTTOM: #c0c0c0 1px solid" 
    vAlign=top width="100%" height=11>
      <P align=left><FONT color=#7a7978>文摘分类&gt;&gt; </FONT><FONT 
      color=#999999>编程基础&nbsp; | </FONT><FONT color=#7a7978>阅读次数&gt;&gt; 
      </FONT><FONT color=#999999>397&nbsp; | </FONT><FONT 
      color=#7a7978>推荐人数&gt;&gt; </FONT><FONT color=#999999>0&nbsp; | 
      </FONT><FONT color=#7a7978>整理日期&gt;&gt; </FONT><FONT 
      color=#999999>2003-03-07</FONT></P></TD></TR></TBODY></TABLE></CENTER></DIV>
<P align=center><INPUT class=rim onclick=window.close() type=button value=关闭窗口 name=close></P></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -