2016-12-06 9 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

開発者または技術サポート担当者が問題をデバッグできるように、問題をどこかに記録する必要があります。これは、スタックトレースをフォーマットしてログファイルに出力することを意味します。

画像に関しては、失敗した画像の代わりに別の「画像を読み込めません」というアイコンを置きます。可能性は無限にあります...画像をクリックするとスタックトレースとエラーメッセージが表示され、画像自体にエラーが表示されたり(小さなコード作業で)、アプリケーション内で何かが動作して予期せぬ起こりました。

関連する問題