我有一个每 10 分钟运行一次的桌面应用程序。我在开始时要求提供登录凭据,然后一直持续到用户退出应用程序。
我的逻辑是这样的,如果他输入正确的凭据,则创建表并存储他的登录信息。如果他输入了错误的凭据,则存储错误凭据的表将被删除,并弹出一个无效登录的弹出窗口。
但是当用户的系统进入待机或休眠状态或没有互联网连接时,基本上如果应用程序无法连接到邮件,那么它会进入表删除部分并删除表。
我该如何处理?如果有互联网中断,我希望如果用户先前已成功登录,那么它不应该删除表而退出。
这是代码-在创建登录表并插入记录后(不管它是否真实),控件就在这里-
public void run(){
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imap");
try{
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imap");
store.connect(getMailboxId(), getEmailId(), getPassword());
inbox = store.getFolder("Inbox");
<<some data processing>>
}
catch (NoSuchProviderException e){
e.printStackTrace();
System.exit(1);
}
catch (MessagingException e){
try {
new DbConnect().deleteRecords(); //Delete table if invalid credentials
} catch (ClassNotFoundException d) {
d.printStackTrace();
}
e.printStackTrace();
JOptionPane.showMessageDialog(controllingFrame,
"Invalid Credentials. Try again.",
"Error Message",
JOptionPane.ERROR_MESSAGE);
System.exit(2);
}