Jeder Fehler, der in POS vorkommt, wird als Fenster mit entsprechender Meldung dargestellt und in der Log-Datei gespeichert. Das Fenster besteht aus dem Namen des Fehlers und seinem Inhalt. Wenn es sich um die Ausnahme vom Typ System.Exception handelt oder von ihm erbt, ist der Name des Fehlers der Typ der ausgelösten Ausnahme und der Inhalt seine Message ist. Im Log werden Informationen über den Typ der Ausnahme, die Message und Aufrufstapel gespeichert. Dies ist keine sehr elegante Lösung, da der Benutzer nicht durch seltsame Meldungen eingeschüchtert werden sollte, wie etwa: NullReferenceException.
Eine Lösung ist die Verwendung der Klasse Comarch.POS.Library.Erros.RetailException. Diese Klasse erbt von System.Exception und führt zwei zusätzliche Eigenschaften ein, die standardmäßig vordefiniert sind, und zwar UITitle, das zur Darstellung des Fehlernamens verwendet wird, und UIMessage, das zur Darstellung eines benutzerfreundlicheres Inhalts verwendet wird. Die Inhalte sind natürlich in Sprachen lokalisiert, die in POS unterstützt werden. In Logs hingegen werden nach wie vor der Typ der Ausnahme, der ursprüngliche Inhalt und der Aufrufstapel gespeichert. Um einen eigenen Namen und/oder Inhalt festzulegen, erstellen Sie einen neuen Ausnahmetyp, der von der Klasse RetailException erbt, und überladen Sie die entsprechenden Eigenschaften.
In POS wurden mehrere Subtypen von RetailException. Ein Beispiel für eine unvollständige Liste mit UITitle- und UIMessage-Inhalt für die deutsche Sprache ist in der nachstehenden Tabelle aufgeführt.
Typ der Ausnahme | UITitle | UIMessage |
RetailException | Systemfehler | Ein unbekannter Fehler ist aufgetreten. |
RetailSecurityException | Zugriff verweigert | Ein unbekannter Fehler ist aufgetreten. |
RetailVoucherException | Handhabung der Gutscheine | Ein unbekannter Fehler ist aufgetreten. |
RetailVoucherBlockedException | Handhabung der Gutscheine | Der Gutschein mit der Nummer {0} ist gesperrt. |