2016-08-18 3 views
1

Я использую Apache PDFBox для чтения некоторых файлов PDF. Когда я закончил с PDF-файлами, мне нужно выпустить PDF-документы. Для этого я вызываю метод close(), который генерирует исключение. Программа также позволяет редактировать PDF-файл, и в этом случае можно было бы исключить исключение, но моя программа просто закрывает их, что не должно быть ошибкой. В этом случае допустимо ли просто исключить исключение и оставить блок catch пустым или есть лучший способ справиться с ним?Как справиться с исключением, вызванным закрытием файла?

Например:

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

добавлен пример кода, не понял, что он понадобится для такого вопроса – kabeersvohra

ответ

2

Допустимо ли просто игнорировать, когда поток близко бросает исключение?

В большинстве случаев это так, но это действительно зависит от контекста. Если вы решите не обрабатывать закрытое исключение и хотите избежать дополнительного блока try-catch, вы можете использовать IOUtils из библиотеки commons-io.

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, вы можете иметь несколько catch. Google «как использовать Try/catch/finally в java», и вы должны придумать хороший материал.

Удачи вам!

Смежные вопросы