我有一個每10分鐘運行一次的桌面應用程序。我在開始時要求提供登錄憑據,然後繼續直到用戶退出應用程序。如何處理java中的連接中斷
我有我的邏輯,以這種方式,如果他輸入正確的憑據,然後表創建和他的登錄信息存儲。如果他輸入錯誤的憑證,那麼存儲錯誤憑證的表將被刪除,並彈出一個無效登錄彈出。
但是,當用戶的系統進入待機狀態或休眠狀態或沒有互聯網連接時,基本上如果應用程序無法連接到郵件,則會進入表刪除部分並丟棄表。
我該如何處理?如果有互聯網中斷,我希望如果用戶先前已成功登錄,那麼它不應該放棄表而退出。
這裏是代碼 - 創建後的登錄表,記錄插入(無形的是正宗與否)的控制來看過來 -
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);
}
添加代碼,因爲我認爲這是混淆 – Dan
感謝幫助很大,我編輯我的答案,以反映你的代碼,希望它有助於 – sparks