我正在开发一个BlackBerry应用程序,用于查找注册到设备的电子邮件地址。我正在使用此代码来完成:
Session session = Session.getDefaultInstance();
System.out.println("############### got session ################");
if (session != null) {
Store store = session.getStore();
System.out.println("################ got store ######################");
ServiceConfiguration serviceConfig = store.getServiceConfiguration();
System.out.println("################ got config #####################");
email = serviceConfig.getEmailAddress();
}
这适用于已注册电子邮件地址的设备。但是如果设备没有在其中注册的地址:
email = serviceConfig.getEmailAddress();
永远不会回来。所以我的整个申请无限期地停止了。解决这个问题的最佳方法是什么?我的第一个想法是设置一个计时器任务,它将在1或2秒后将电子邮件字符串设置为某个默认值,例如“无地址注册”。是否有更好的方式来获得通知,除了应用程序只是拖延而无所事事之外没有其他电子邮件?
答案 0 :(得分:4)
事实证明,如果没有注册电子邮件,serviceConfig.getEmailAddress();
会抛出异常。 BlackBerry文档中没有提及此问题。这也很奇怪,因为如果你没有捕获到那个异常,那么方法永远不会返回,你的应用程序将无限期地停止。但要解决此问题,您可以使用try / catch包围该调用,并在catch块中将电子邮件设置为默认值。