Udostępnij przez


Klasy wyjątków (POS dla zestawu SDK platformy .NET w wersji 1.14)

Obsługa błędów programu Microsoft Point of Service dla platformy .NET (POS dla platformy .NET) jest implementowana przy użyciu wyjątków. Cztery klasy wyjątków platformy .NET są następujące:

Standardowe kody błędów ujednoliconego punktu usługi (UnifiedPOS) są reprezentowane przez ErrorCode wyliczenie.

PosException

PosException to klasa wyjątku podstawowego dla klasy PosControlException, PosManagementException i PosLibraryException. Funkcja PosException pochodzi z elementu System.Exception.

PosControlException

PosControlException to standardowy wyjątek zgłaszany przez obiekty usługi do usługi POS dla aplikacji platformy .NET.

PosManagementException

PosManagementException jest zgłaszany przez usługę POS dla platformy .NET Zarządzanie urządzeniami. Obiekty aplikacji i usług nie mogą zgłaszać wyjątku PosManagementException.

PosLibraryException

Funkcja PosLibraryException jest zgłaszana przez element PosExplorer. Obiekty aplikacji i usługi nie mogą zgłaszać wyjątku PosLibraryException.

Kody błędów

W poniższej tabeli przedstawiono mapowanie między standardowymi kodami błędów UnifiedPOS a wartościami ErrorCode , które udostępnia usługa POS dla platformy .NET.

Element członkowski kodów błędów usługi POS Kod błędu UnifiedPOS Przyczyna błędu
Zajęte E_BUSY Bieżący stan obiektu usługi nie zezwala na to żądanie.
Twierdził E_CLAIMED Inne wystąpienie obiektu usługi już twierdziło, że urządzenie POS.
Zamknięcie E_CLOSED Urządzenie poS jest zamknięte.
Przestarzałe E_DEPRECATED Metoda została przestarzała i nie jest już dostępna.
Disabled E_DISABLED Nie można wykonać operacji, gdy urządzenie jest wyłączone.
Exists E_EXISTS Nazwa pliku lub inna określona wartość już istnieje.
Rozszerzone E_EXTENDED Wystąpił warunek błędu specyficzny dla urządzenia.
Błąd E_FAILURE Urządzenie poS nie może wykonać żądanej procedury, mimo że urządzenie jest połączone z systemem i aktywne.
Nielegalne E_ILLEGAL Aplikacja poS próbowała nielegalnej lub nieobsługiwanej operacji z urządzeniem albo użyła nieprawidłowej wartości parametru.
Nieistniej E_NOEXIST Nazwa pliku lub inna określona wartość nie istnieje.
NoHardware E_NOHARDWARE Urządzenie poS nie jest połączone z systemem lub nie jest włączone.
NoService E_NOSERVICE Obiekt usługi nie może komunikować się z urządzeniem, zwykle z powodu błędu konfiguracji lub konfiguracji.
Nieodebrane E_NOTCLAIMED Aplikacja poS próbowała uzyskać dostęp do urządzenia z wyłącznym użyciem, które musi zostać zgłoszone przed użyciem akcji zestawu właściwości lub metody.
W trybie offline E_OFFLINE Urządzenie poS jest w trybie offline.
Timeout E_TIMEOUT Upłynął limit czasu obiektu usługi w oczekiwaniu na odpowiedź z urządzenia pos.

Przykład

W poniższym przykładzie kodu pokazano, jak usługa MSR obsługuje wyjątki POS i używa kodów ErrorCode zawartych w tych wyjątkach w celu zebrania informacji o nich.

// Create a new instance of the MSR and opens the device.
msr = (Msr)explorer.CreateInstance(msrinfo);
msr.Open();

// Try to enable the device without first claiming it.
// This will throw a PosControlException which, through
// its ErrorCode, will yield information about the exception.
try
{
   msr.DeviceEnabled = true;
}
catch (PosControlException e)
{

   // Examine the ErrorCode to determine the cause of the error.
   if (e.ErrorCode == ErrorCode.NoHardware)
   {
      Console.WriteLine("The POS device is not connected ");
      Console.WriteLine("to the system or is not turned on.");
   }
   if (e.ErrorCode == ErrorCode.Timeout)
   {
      Console.WriteLine("The Service Object timed out
            waiting for a response from the POS device.");
   }

   // The example has not claimed the MSR, which is an
   // exclusive-access device, before trying to enable
   // it. This will throw the PosControlException
   // and trigger the following conditional block.
   // Once triggered, the MSR will be claimed and enabled.
   if (e.ErrorCode == ErrorCode.NotClaimed)
   {
      Console.WriteLine("The POS application attempted to access ");
      Console.WriteLine("an exclusive-use device that must be ");
      Console.WriteLine("claimed before the method or property ");
      Console.WriteLine("set action can be used.")
      msr.Claim(1000);
      msr.DeviceEnabled = true;
   }
}

Zobacz też

Odwołanie

Pojęcia

Inne zasoby