Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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;
}
}