【问题标题】:null pointer exception in retrieving contacts in j2me在 j2me 中检索联系人时出现空指针异常
【发布时间】:2012-08-10 14:36:51
【问题描述】:

我在使用此联系人检索代码时遇到问题。函数 getContact() 正在重新调整 null。

private PIM pim;
private ContactList clist;

public ContactExtract(){
    pim=PIM.getInstance();
    try{
    clist=(ContactList) pim.openPIMList(PIM.CONTACT_LIST,PIM.READ_ONLY);
    }catch(Exception e){}
}

public Vector getContact(){
    //ContactDetail cd[]= new ContactDetail[200];
    Vector v=new Vector();
    try{
        Enumeration en=clist.items();
        //String num=null;
        //String temp[]=new String[2];
        //int i=0;
        while(en.hasMoreElements()){
            Contact c=(Contact)en.nextElement();
            v.addElement(c);
            //temp=c.getStringArray(Contact.NAME, i);
            //num=c.getString(Contact.TEL, i);
            //cd[i]=new ContactDetail(temp[0],temp[1],num);
        }
        clist.close();
    }catch(Exception e){}
    return v;

【问题讨论】:

    标签: java-me nullpointerexception jsr75


    【解决方案1】:

    您获得 NPE 的最可能原因是 clist 值在 getContact 方法中为空。反过来,最可能的原因是 ContactExtract() 构造函数中发生了一些异常。

    但是,只要您吞下异常,就永远无法确定这一点。如果您有兴趣,请在网上搜索类似 java 燕子异常 的内容,以详细了解为什么这是不好的。

    同时,找出发生了什么的最直接的方法是在代码中的任何地方添加适当的日志记录,首先是在 catch 块中。确保没有像catch(Exception e){} 这样的声明,您的奖励将更容易理解问题所在。

    在构造函数中,将空的 catch 块替换为:

    catch(Exception e){
        Sustem.out.println("exception in openPIMList: [" + e + "]");
    }
    

    在 getContat 方法中,做同样的事情,只是使用适当的日志消息:

    catch(Exception e){
        Sustem.out.println("exception in getContact: [" + e + "]");
    }
    

    然后,在模拟器中重新运行代码并查看其控制台以找出问题所在。

    在代码中值得添加的另一件事是检查、记录和处理可能的空值。在getContact() 方法中,clist 可以为空并给您带来各种麻烦,但您甚至不会尝试检查和处理它。

    【讨论】:

      【解决方案2】:

      总是尝试打印异常 e。

      catch(Exception e)
      {
          e.printStackTrace();
      }
      

      你会知道代码有什么问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 2021-04-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多