Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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;
}
}