Я использую библиотеку Apache PdfBox и замечаю, что почти все выдает IOException, и довольно неприятно иметь дело с тем, что большинство IOException на самом деле должны быть недопустимыми исключениями состояния, но кажется, что apache хочет, чтобы клиенты имели дело с этимони заставили их как проверенные исключения.В любом случае ...
Мой вопрос заключается в том, как обернуть IOException в пользовательское исключение, расширяющее RuntimeException, чтобы с API было проще иметь дело?
Пример:
private final PDDocument document;
private final PDPage page;
private final PDFont font;
public PdfBoxWrapper(PDDocument document, PDPage page, PDFont font)
{
this.document = document;
this.page = page;
this.font = Objects.isNull(font) ? PDType1Font.HELVETICA : font;
this.document.addPage(this.page);
try
{
this.canvas = new PDPageContentStream(this.document, this.page);
}
catch (IOException exception) {
logger.error(exception.getMessage());
}
}
Обратите внимание, как мне нужно обернуть PDPageContentStream в попытку перехвата.Как обернуть IOException от PdfBox как PdfBoxIllegalStateException?
как показано ниже:
public class PdfBoxIllegalStateException extends RuntimeException
{
public PdfBoxIllegalStateException(String message)
{
super(message);
}
public PdfBoxIllegalStateException(String message, Throwable cause)
{
super(message, cause);
}
}