Compartilhar via


Classes de exceção (POS para documentação do SDK do .NET v1.14)

O tratamento de erros do Microsoft Point of Service for .NET (POS for .NET) é implementado por meio do uso de exceções. As quatro classes de exceção do POS for .NET são as seguintes:

Os códigos de erro Unified Point Of Service (UnifiedPOS) padrão são representados pela enumeração ErrorCode.

PosException

PosException é a classe de exceção Base para PosControlException, PosManagementException e PosLibraryException. PosException é derivado de System.Exception.

PosControlException

PosControlException é a exceção padrão gerada pelos Objetos de Serviço para POS para aplicativos .NET.

PosManagementException

PosManagementException é gerada pelo POS para Gerenciamento de Dispositivos .NET. Aplicativos e objetos de serviço não devem gerar PosManagementException.

PosLibraryException

PosLibraryException é gerada por PosExplorer. Aplicativos e objetos de serviço não devem gerar PosLibraryException.

Códigos de erro

A tabela a seguir fornece um mapeamento entre os códigos de erro padrão do UnifiedPOS e os valores ErrorCode fornecidos pelo POS for .NET.

Membro POS ErrorCode Código de erro UnifiedPOS Causa do erro
Ocupado E_BUSY O estado atual do Objeto de Serviço não permite essa solicitação.
Reivindicado E_CLAIMED Outra instância do Objeto de Serviço já reivindicou o dispositivo POS.
Fechado E_CLOSED O dispositivo POS está fechado.
Preterido E_DEPRECATED O método foi preterido e não está mais disponível.
Desabilitado E_DISABLED A operação não pode ser executada enquanto o dispositivo está desabilitado.
Exists E_EXISTS O nome do arquivo ou outro valor especificado já existe.
Estendido E_EXTENDED Ocorreu uma condição de erro específica ao dispositivo.
Falha E_FAILURE O dispositivo POS não pode executar o procedimento solicitado, mesmo que o dispositivo esteja conectado ao sistema e ativo.
Ilegal E_ILLEGAL O aplicativo POS tentou uma operação ilegal ou sem suporte com o dispositivo ou usou um valor de parâmetro inválido.
NoExist E_NOEXIST O nome do arquivo ou outro valor especificado não existe.
NoHardware E_NOHARDWARE O dispositivo POS não está conectado ao sistema ou não está ativado.
NoService E_NOSERVICE O Objeto de Serviço não pode se comunicar com o dispositivo, normalmente devido a um erro de configuração.
NotClaimed E_NOTCLAIMED O aplicativo POS tentou acessar um dispositivo de uso exclusivo que deve ser reivindicado antes que o método ou a ação do conjunto de propriedades possa ser usado(a).
Offline E_OFFLINE O dispositivo POS está offline.
Tempo limite E_TIMEOUT O Objeto de Serviço atingiu o tempo limite aguardando uma resposta do dispositivo POS.

Exemplo

O exemplo de código a seguir demonstra como o MSR lida com exceções de POS e usa os ErrorCodes contidos nessas exceções para coletar informações sobre elas.

// 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 Também

Referência

Conceitos

Outros recursos