Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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;
}
}