Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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;
}
}