Compartir a través de


Clases de excepción (documentación del SDK de POS para .NET versión 1.14)

El control de errores de punto de servicio de Microsoft para .NET (POS para .NET) se implementa mediante el uso de excepciones. Los cuatro POS para las clases de excepción de .NET son los siguientes:

Los códigos de error de punto de servicio unificado (UnifiedPOS) estándar se representan mediante la enumeración ErrorCode.

PosException

PosException es la clase de excepción Base para PosControlException, PosManagementException y PosLibraryException. PosException se deriva de System.Exception.

PosControlException

PosControlException es la excepción estándar producida por los objetos de servicio de POS para aplicaciones de .NET.

PosManagementException

PosManagementException se produce mediante POS para la administración de dispositivos de .NET. Las aplicaciones y los objetos de servicio no deben iniciar PosManagementException.

PosLibraryException

PosLibraryException se produce mediante PosExplorer. Las aplicaciones y los objetos de servicio no deben iniciar PosLibraryException.

Códigos de error

En la tabla siguiente se proporciona una asignación entre los códigos de error estándar de UnifiedPOS y los valores de ErrorCode que proporciona POS para .NET.

Miembro de código de error de POS Código de error de UnifiedPOS Causa del error
Ocupado E_BUSY El estado actual del objeto de servicio no permite esta solicitud.
Reclamado E_CLAIMED Otra instancia del objeto de servicio ya ha reclamado el dispositivo de POS.
Cerrado E_CLOSED El dispositivo de POS está cerrado.
Obsoleto E_DEPRECATED El método está en desuso y ya no es necesario.
Disabled E_DISABLED La operación no se puede realizar mientras el dispositivo está deshabilitado.
Exists E_EXISTS El nombre de archivo u otro valor especificado ya existe.
Extendido E_EXTENDED Se produjo una condición de error específica del dispositivo.
Error E_FAILURE El dispositivo de POS no puede realizar el procedimiento solicitado, aunque el dispositivo esté activo y conectado al sistema.
Ilegal E_ILLEGAL La aplicación de POS intentó una operación ilegal o no admitida con el dispositivo, o usó un valor de parámetro no válido.
NoExist E_NOEXIST El nombre de archivo u otro valor especificado no existe.
NoHardware E_NOHARDWARE El dispositivo de POS no está conectado al sistema o no está activado.
NoService E_NOSERVICE El objeto de servicio no se puede comunicar con el dispositivo, normalmente debido a un error de configuración o de instalación.
NotClaimed E_NOTCLAIMED La aplicación de POS intentó acceder a un dispositivo de uso exclusivo que se debe reclamar antes de que se pueda usar el método o la acción del conjunto de propiedades.
Sin conexión E_OFFLINE El dispositivo de POS está sin conexión.
Tiempo de espera E_TIMEOUT El objeto de servicio agotó el tiempo de espera de una respuesta del dispositivo de POS.

Ejemplo

En el siguiente código de ejemplo se muestra cómo MSR controla las excepciones de POS y usa los Códigos de error que hay en esas excepciones para recopilar información sobre ellas.

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

Consulte también

Referencia

Conceptos

Otros recursos