我正在嘗試使用FTP4J(在代碼示例中稱爲客戶端)爲FTP服務器創建監視應用程序。創建一步一步驗證
它連接到FTP,登錄,在本地創建文件,上傳文件,下載文件,驗證文件是否相同,清理FTP和本地文件並斷開連接。
所有這些都已經完成了,但我的問題是如何最好地記錄發生了什麼並在檢測到錯誤時中斷?
我能想到的簡單解決方案是創建一個布爾值,顯示以前的步驟是否成功,並且只有在下一個步驟纔會在哪裏進行。
StringBuilder sb = new StringBuilder();
boolean noError = true;
// Connect to FTP
try {
client.connect(hostname, port);
} catch (Exception e) {
noError = false;
sb.append("failed to connect<br>");
}
//Logging in to FTP
if(noError) {
try {
client.login(username, password);
} catch (Exception e) {
noError = false;
sb.append("failed to login<br>");
}
}
...
// Close connection
if(client.isConnected()) {
try {
client.disconnect(true);
} catch (Exception e) {
sb.append("failed to disconnect<br>");
}
}
另一種解決辦法我能想到的是嵌套的try/catch,但看起來更糟糕,有沒有這樣做的更好的辦法?
它怎麼在'catch'塊裏面有'noError = false'? – adarshr
@adarshr如果你在catch塊中發生錯誤,所以當詢問是否發生了noError時,它應該是false,這個邏輯有什麼問題嗎? – Blem
我感到困惑。這就是爲什麼變量不應該被命名爲負面的原因。你可以簡單地把它稱爲'success'並設置爲'false'或者將其稱爲'error',並且在'catch'塊中將其設置爲'true'。 – adarshr