JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JAVA技术--异常处理  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
深入MIDIetStateChangeException
作者:     文章来源:
访问次数:50次     加入时间:2007年03月25日
  当MIDIet程序运行时出现错误的时候,应用程序管理器(application manager)会发出这个异常(exception). 在MIDIet类中也有两个方法可以发出这个异常(exception): destroyApp()和startApp().

  下面是一个捕捉和发送例外的例子。这个简单的MIDIet显示一个FORM和一个关闭程序的按钮(显示EXIT).

   创建这个例子的时候,我们会有这个问题:当按下关闭按钮或者应用程序管理器(application manager)要关闭这个MIDIet的时候,如果MIDIet正在下载程序,会发生什么情况?我们可以抛出异常(exception)而不是马上关闭程序。也就是说,下载请求不应在此时被关闭。应用程序管理器会在以后重试。

   这个例子如何工作:当使用者第一次按下EXIT按钮,我们调用destroyApp(false)方法。这里传入参数false告诉方法这个请求不是无条件的,而且我们将会抛出MIDIetStateException异常.这个异常(exception)会在commandAction()里被捕捉到,同时会设置一个标志,这个标志意味着我们将可以关闭程序. 这样,当我们再一次按下EXIT按钮的时候。MIDIet将要继续运行直到EXIT按钮第二次被按下。

注意:以下例子基于MIDP和CLDC 1.0.3.


1. JAVA源代码:

/*----------------------------------------------------
* a look inside MIDletStateChangeException and the
* destroyApp() method
*
* www.CoreJ2ME.com
*---------------------------------------------------*/

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class ExceptionTest extends MIDlet implements CommandListener
{
  private Display display;              // Reference to Display object
  private Form frmMain;                 // A Form
  private Command cmdExit;              // A Command to exit the MIDlet
  private boolean safeToExit = false;   // Is it safe to exit the MIDlet?

  public ExceptionTest()
  {
    display = Display.getDisplay(this);
    
    cmdExit = new Command("Exit", Command.SCREEN, 1);
    frmMain = new Form("Test Exception");
    frmMain.addCommand(cmdExit);
    frmMain.setCommandListener(this);
  }

  // Called by application manager to start the MIDlet.
  public void startApp()
  {
    display.setCurrent(frmMain);
  }

  // We are about to be placed in the Paused state
  public void pauseApp()
  {
  }

  // We are about to enter the Destroyed state
  public void destroyApp(boolean unconditional) throws MIDletStateChangeException
  {
    System.out.println("Inside destroyApp()");

    // If we do not need to unconditionally exit
    if (unconditional == false)
    {
      System.out.println("Requesting not to be shutdown");
      throw new MIDletStateChangeException("Please don't shut me down.");
    }      
  }

  // Check to see if the Exit command was selected
  public void commandAction(Command c, Displayable s)
  {
    if (c == cmdExit)
    {
      try
      {
        // Is it ok to exit?
        if (safeToExit == false)
          destroyApp(false);
        else
        {
          destroyApp(true);
          notifyDestroyed();
        }
      }
      catch (MIDletStateChangeException excep)
      {
        safeToExit = true;   // Next time, let's exit
        System.out.println(excep.getMessage());
        System.out.println("Resuming the Active state");
      }
    }
  }
}

2. Emulator 显示:




ExceptionTest.java—控制台的信息和显示。

3.源代码下载
下载

关于翻译作者:
bruceyuki,JAVA C#技术爱好者,现就读于新西兰奥克兰大学,正参与大学的一个AI项目,可以点击http://www.matrix.org.cn/user_view.asp?username=bruceyuki查看他的个人信息
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号