Partilhar via


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

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

Os códigos de erro do Ponto de Serviço Unificado Padrão (UnifiedPOS) são representados pela ErrorCode enumeração.

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 lançada por Service Objects para aplicativos POS for .NET.

PosManagementException

PosManagementException é lançado pelo PDV para Gerenciamento de Dispositivos .NET. Aplicativos e objetos de serviço não devem lançar PosManagementException.

PosLibraryException

PosLibraryException é lançado por PosExplorer. Aplicativos e objetos de serviço não devem lançar 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 para .NET.

Membro do POS ErrorCode Código de erro do UnifiedPOS Causa do erro
Ocupado E_BUSY O estado atual do objeto de serviço não permite essa solicitação.
Reivindicação E_CLAIMED Outra instância de Service Object já reivindicou o dispositivo POS.
Fechadas E_CLOSED O dispositivo POS está fechado.
Preterido E_DEPRECATED O método foi preterido e não está mais disponível.
Desativado E_DISABLED A operação não pode ser executada enquanto o dispositivo está desativado.
Exists E_EXISTS O nome do arquivo ou outro valor especificado já existe.
Alargado E_EXTENDED Ocorreu uma condição de erro específica do 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.
Não existe 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á ligado.
NãoServiço E_NOSERVICE O objeto de serviço não pode se comunicar com o dispositivo, normalmente devido a um erro de instalação ou configuração.
NotReivindicado 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.
Offline E_OFFLINE O dispositivo POS está offline.
Limite de tempo excedido 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 PDV 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