Sdílet prostřednictvím


Třídy výjimek (Dokumentace k sadě POS pro .NET v1.14 SDK)

Zpracování chyb Microsoft Point of Service pro .NET (POS pro .NET) se implementuje prostřednictvím použití výjimek. Čtyři třídy výjimek pos pro .NET jsou následující:

Kódy chyb standardního sjednoceného bodu služby (UnifiedPOS) jsou reprezentovány výčtem ErrorCode .

PosException

PosException je třída základní výjimky pro PosControlException, PosManagementException a PosLibraryException. PosException je odvozen z System.Exception.

PosControlException

PosControlException je standardní výjimka vyvolaná objekty služby poS pro aplikace .NET.

PosManagementException

PosManagementException je vyvolán poS pro .NET Správa zařízení. Aplikace a objekty služby nesmí vyvolat výjimku PosManagementException.

PosLibraryException

PosLibraryException je vyvolán PosExplorer. Aplikace a objekty služby nesmí vyvolat výjimku PosLibraryException.

Kódy chyb

Následující tabulka obsahuje mapování mezi standardními kódy chyb UnifiedPOS a hodnotami ErrorCode , které poskytuje POS pro .NET.

Člen kódu chyby POS Kód chyby UnifiedPOS Příčina chyby
Zaneprázdněný E_BUSY Aktuální stav objektu služby nepovoluje tento požadavek.
Tvrdil E_CLAIMED Jiná instance objektu služby již nárokovala zařízení POS.
Zavřeno E_CLOSED Zařízení POS je zavřené.
Zastaralé E_DEPRECATED Metoda je zastaralá a už není k dispozici.
Zakázáno E_DISABLED Operaci nelze provést, když je zařízení zakázané.
Exists E_EXISTS Název souboru nebo jiná zadaná hodnota již existuje.
Prodlouženo E_EXTENDED Došlo k chybovému stavu specifickému pro zařízení.
Selhání E_FAILURE Zařízení POS nemůže provést požadovaný postup, i když je zařízení připojené k systému a aktivní.
Nelegální E_ILLEGAL Aplikace POS se pokusila o neplatnou nebo nepodporovanou operaci se zařízením nebo použila neplatnou hodnotu parametru.
NoExist E_NOEXIST Název souboru nebo jiná zadaná hodnota neexistuje.
NoHardware E_NOHARDWARE Zařízení POS není připojené k systému nebo není zapnuté.
NoService E_NOSERVICE Objekt služby nemůže komunikovat se zařízením, obvykle kvůli chybě instalace nebo konfigurace.
NotClaimed E_NOTCLAIMED Aplikace POS se pokusila o přístup k zařízení s výhradním použitím, které je nutné před použitím metody nebo akce sady vlastností použít.
Režim offline E_OFFLINE Zařízení POS je offline.
Timeout E_TIMEOUT Vypršel časový limit objektu služby, který čeká na odpověď ze zařízení POS.

Příklad

Následující příklad kódu ukazuje, jak MSR zpracovává výjimky POS a používá ErrorCodes obsažené v těchto výjimkách ke shromažďování informací 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;
   }
}

Viz také

Reference

Koncepty

Další prostředky