2016-08-18 13 views
1

私はいくつかのPDFファイルを読むためにはApache PDFBoxを使用しています。私がPDFを読み終えたら、PDF文書を公開する必要があります。これを行うには、例外をスローするclose()メソッドを呼び出します。プログラムは、例外がスローされる可能性がある場合にはPDFを編集することができますが、私のプログラムは、単にエラーではないはずであるそれらを閉じます。この場合、それだけで例外をキャッチして、空のcatchブロックを残して受け入れられるか、それに対処するための良い方法はありますか?例えばファイルクローズによってスローされた例外を処理するには?

try { 
    pdf.close(); 
catch { 
    //empty 
} 
+0

、コード例を追加しました、それは – kabeersvohra

答えて

2

は、ストリームのクローズが例外をスローしたときだけ、無視することが許容できますか?

ほとんどのケースではあるが、それは本当に文脈に依存します。あなたが近い例外を処理しないことを決定し、余分なtry-catchブロックを避けるために探している場合は、commons-ioライブラリからIOUtilsを使用することができます。

finally { 
    IOUtils.closeQuietly(pdf); 
} 

これは、次の

finally { 
    try { 
     if (closeable != null) { 
      closeable.close(); 
     } 
    } catch (IOException ioe) { 
     // ignore 
    } 
} 
+1

IOUtils.closeQuietlyが:-)またPDFBoxの一部であり、このような質問のために必要とされるであろう実現しませんでした –

0
try { 
     //code to catch 
    } catch (IOException ex) {//specific catch 
     ex.printStackTrace(); 

    } catch (Exception e) {//Catch errors lazily, This will catch any exception within the try that is rooted from the Exception class. 
     e.printStackTrace(); 
    } 

これを行うために、より適切な方法がありますと同等であるが、これは簡単な方法です。あなたは本当に一つのcatch節が必要です。あなたはmulti catchを持つことができます。 Googleの "try/catch/finally in java"の使い方を教えてください。

幸運を祈る!

関連する問題