13.9. Fehlermeldungen, Fehlernummern

Fehlermeldungen von PDFUnit gibt es in englischer und deutscher Sprache. Sie liefern detailierte Informationen, um eine Fehlerbehebung zu erleichtern. Insgesamt wird versucht, Meldungen so sprechend wie möglich zu gestalten. Diese Absicht demonstriert eine Fehlermeldung für ein falsches Seitenformat:

Wrong page format in 'multiple-formats-on-individual-pages.pdf' on page 1. 
Expected: 'height=297.00, width=210.00 (as 'mm')', 
but was:  'height=209.90, width=297.04 (as 'mm')'.

Damit Fehlermeldungen lesbar bleiben, werden lange Parameterinhalte verkürzt und die Position des Fehlers durch die Zeichen <[ und ]> markiert. Die Anzahl der verkürzten Zeichen wird mit '...NN...' dargestellt:

The expected content does not match the JavaScript in 'javaScriptClock.pdf'. 
Expected: '//<[Thisfileco...41...dbyPDFUnit]>', 
but was:  '//<[Constantsu...4969...);break;}}]>'.

Die Bereitstellung von Fehlermeldungen in weiteren Sprachen neben Deutsch und Englisch ist technisch vorbereitet. Schreiben Sie Ihre Wünsche an info[at]pdfunit.com.

Fehlernummern

Fehlertexte stehen in den Dateien messages.properties bzw. messages_SPRACHE.properties. Jede Fehlermeldung in diesen Dateien hat das Format key = value. Als key wird im Falle von PDFUnit der Name einer Klasse verwendet, insofern muss der Begriff 'Fehlernummer (error number)' durch den Begriff 'Fehlerschlüssel (error key)' ersetzt werden.

Wenn zur Laufzeit ein Fehler abgefangen wurde, kann dieser Fehlerschlüssel abgefragt werden:

@Test
public void testErrorKey_hasText() throws Exception {
  try {
    String filename = PATH + "content/empty-pages.pdf";
    AssertThat.document(filename)
              .restrictedTo(EVERY_PAGE)
              .hasText()
    ;
  } catch (PDFUnitValidationException e) {
    String expectedKey = "com.pdfunit.messages.TextAvailableMessage";
    String actualKey = e.getErrorKey();
    assertEquals(expectedKey, actualKey);
  }
}

Im catch-Zweig könnte der Error-Key auch an eine Logging-Funktion übergeben werden.