Partager via


Classes d’exception (documentation du SDK POS pour .NET v1.14)

La gestion des erreurs Microsoft Point of Service pour .NET (POS pour .NET) est implémentée à l’aide d’exceptions. Les quatre classes d’exception POS pour .NET sont les suivantes :

Les codes d’erreur Unified Point Of Service (UnifiedPOS) standard sont représentés par l’énumération ErrorCode.

PosException

PosException est la classe d’exception de base pour PosControlException, PosManagementException et PosLibraryException. PosException est dérivé de System.Exception.

PosControlException

PosControlException est l’exception standard levée par les objets de service envers les applications POS pour .NET.

PosManagementException

L’exception PosManagementException est levée par la Gestion d’appareils POS pour .NET. Les applications et les objets de service ne doivent pas lever l’exception PosManagementException.

PosLibraryException

L’exception PosLibraryException est levée par PosExplorer. Les applications et les objets de service ne doivent pas lever l’exception PosLibraryException.

Codes d’erreur

Le tableau suivant fournit un mappage entre les codes d’erreur standard UnifiedPOS et les valeurs ErrorCode que POS pour .NET fournit.

Membre ErrorCode POS Code d’erreur UnifiedPOS Cause de l’erreur
Busy E_BUSY L’état actuel de l’objet de service n’autorise pas cette requête.
Claimed E_CLAIMED Une autre instance d’objet de service a déjà revendiqué l’appareil POS.
Fermés E_CLOSED L’appareil POS est fermé.
Déprécié E_DEPRECATED La méthode a été dépréciée et n’est plus disponible.
Désactivé E_DISABLED L’opération ne peut pas être effectuée tant que l’appareil est désactivé.
Exists E_EXISTS Le nom de fichier ou une autre valeur spécifiée existe déjà.
Étendu E_EXTENDED Une condition d’erreur spécifique de l’appareil s’est produite.
Échec E_FAILURE L’appareil POS ne peut pas effectuer la procédure demandée, même s’il est connecté au système et actif.
Illegal E_ILLEGAL L’application POS a tenté une opération illégale ou non prise en charge avec l’appareil, ou a utilisé une valeur de paramètre non valide.
NoExist E_NOEXIST Le nom de fichier ou une autre valeur spécifiée n’existe pas.
NoHardware E_NOHARDWARE L’appareil POS n’est pas connecté au système ou n’est pas allumé.
NoService E_NOSERVICE L’objet de service ne peut pas communiquer avec l’appareil, normalement en raison d’une erreur d’installation ou de configuration.
NotClaimed E_NOTCLAIMED L’application POS a tenté d’accéder à un appareil à usage exclusif qui doit être revendiqué avant que l’action de méthode ou de jeu de propriétés puisse être utilisée.
Hors connexion E_OFFLINE L’appareil POS est hors connexion.
Délai d'expiration E_TIMEOUT L’objet de service a expiré en attente d’une réponse de l’appareil POS.

Exemple

L’exemple de code suivant montre comment MSR gère les exceptions POS et utilise les ErrorCodes contenus dans ces exceptions pour collecter des informations les concernant.

// 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;
   }
}

Voir aussi

Informations de référence

Concepts

Autres ressources