2016-12-06 29 views
0

這是一個Java代碼片段,但我想這個問題是有關其他語言...如果大圖像無法在GUI上顯示,該怎麼辦?

public BufferedImage getVisualisation(){ 
    try { 
     BufferedImage visualisation = ImageIO.read(from some inputStream); 
     return visualisation; 
    } catch (IOException e) { 
     // What do I do here? 
    } 
} 

代碼從某處讀取一些數據,並嘗試生成一個BufferedImage。這個圖像將被顯示,比如說一個JPanel。現在讓我們假設IO進程拋出一個擺動,失敗並拋出IOException並立即被catch塊捕獲。

然後我只是拋出另一個異常?我是否返回null?考慮一下將會有代碼需要在GUI上顯示正確的圖像。這不像數值計算出錯,並返回0或null。可能有很大一部分GUI不會被繪製。你會創建一個破碎窗口窗格的另一個BufferedImage或其他東西,以便它可以顯示通知用戶有問題嗎?還是讓它不上漆,並彈出一個警告對話?或者你只是返回null並在下游進一步處理它?

在這些情況下爲用戶創造最佳體驗的最佳做法是什麼?

+0

如果你不能處理這個異常,首先不要抓住它。讓異常冒泡到你可以處理的地方。 – Blorgbeard

回答

0

您需要在某處記錄問題,以便開發人員或技術支持人員進行調試。這意味着格式化並將堆棧跟蹤打印到日誌文件。

至於圖像,我會保留一個單獨的「圖像無法加載」圖標來代替失敗的圖像。可能性是無止境的......你可以讓圖像在點擊時顯示堆棧跟蹤和錯誤消息,在圖像本身上顯示錯誤(只需一點編碼工作)或者在應用程序中運行的任何東西,以通知用戶意外發生了。

相關問題