Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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;
}
}