簡體   English   中英

如何將失敗情況處理成簡單的Java應用程序?

[英]How to handle fail situation into a simple Java application?

我是Java開發人員,但是我在軟件體系結構方面還沒有很多經驗。

我有以下情況。 我正在創建一個批處理應用程序(運行在shell中的命令行應用程序),因此它是從定義到Main()類的main()方法啟動的。

在這個main()方法中,我創建了一些其他類的對象實例,這些對象執行了某些操作(例如,在數據庫上執行查詢,創建PDF等),因此此處的應用程序可能會失敗。

如果應用程序沒有失敗(一切按預期進行), main()方法將以退出代碼= 0結尾。

我希望如果應用程序失敗(在任何時候),返回的退出代碼是-1

所以現在我不知道該如何處理這種情況。

例如,如果進入main()方法,我將得到以下內容:

// Create DAO object:
FatturaDAO fatturaDAO = new FatturaDAO(conn);
listaFatture = fatturaDAO.getListaFatturePDF(partitaIVA);

在其中創建和使用DAO對象。 現在考慮在FatturaDAO對象中發生某些故障的情況(例如,連接丟失並引發異常)。

如何正確處理這種情況?

我有2個想法,但我不知道什么是最佳解決方案:

  1. 我在代碼中放入了一些try catch塊,因此如果出現故障,則進入處理它的catch塊,執行以下操作:

     System.exit(-1); 
  2. 如果失敗,則進入catch塊,而不是退出,拋出一個自定義異常,該異常返回到執行以下main()方法:

     System.exit(-1); 

還是我可以以其他更聰明的方式處理這些情況?

2. If something fail it enter into the catch block that instead of exit 
throws  a custom exception that goes back until the main() method that perform:

如果要在main()中處理異常,則必須在父級具有錯誤處理代碼。 如果有任何更改,則無需檢查其他函數,只需在其他函數上添加through關鍵字,並在main()處理異常並返回所需的類型。

在大多數J2EE應用程序中,我們在Controller部分而不是DAOService層中處理異常。 發生異常時,將消息傳遞給用戶更容易。

在命令行應用程序中,main()方法實際上是UI層。 這是一個非常簡陋的UI,但是,如果您構建應用程序以使主類調用控制器層,並且控制器層引發異常,則應在main()方法中捕獲該異常,然后返回正確的“用戶值”為0或-1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM