Bagikan melalui


Kelas Pengecualian (POS untuk Dokumentasi .NET v1.14 SDK)

Penanganan kesalahan Microsoft Point of Service untuk .NET (POS untuk .NET) diimplementasikan melalui penggunaan pengecualian. Empat POS untuk kelas pengecualian .NET adalah sebagai berikut:

Kode kesalahan Titik Layanan Terpadu Standar (UnifiedPOS) diwakili oleh ErrorCode enumerasi.

PosException

PosException adalah kelas Pengecualian dasar untuk PosControlException, PosManagementException, dan PosLibraryException. PosException berasal dari System.Exception.

PosControlException

PosControlException adalah pengecualian standar yang dilemparkan oleh Objek Layanan ke POS untuk aplikasi .NET.

PosManagementException

PosManagementException dilemparkan oleh POS untuk .NET Manajemen Perangkat. Aplikasi dan Objek Layanan tidak boleh melempar PosManagementException.

PosLibraryException

PosLibraryException dilemparkan oleh PosExplorer. Aplikasi dan Objek Layanan tidak boleh melempar PosLibraryException.

Kode Kesalahan

Tabel berikut ini menyediakan pemetaan antara kode kesalahan standar UnifiedPOS dan nilai ErrorCode yang disediakan POS untuk .NET.

Anggota Kode Kesalahan POS Kode Kesalahan UnifiedPOS Penyebab Kesalahan
Sibuk E_BUSY Status Objek Layanan saat ini tidak memperbolehkan permintaan ini.
Mengklaim E_CLAIMED Instans Objek Layanan lain telah mengklaim perangkat POS.
Tutup E_CLOSED Perangkat POS ditutup.
Tidak digunakan lagi E_DEPRECATED Metode tidak digunakan lagi dan tidak lagi tersedia.
Nonaktif E_DISABLED Operasi tidak dapat dilakukan saat perangkat dinonaktifkan.
Ada E_EXISTS Nama file atau nilai lain yang ditentukan sudah ada.
Diluaskan E_EXTENDED Terjadi kondisi kesalahan khusus perangkat.
Kegagalan E_FAILURE Perangkat POS tidak dapat melakukan prosedur yang diminta, meskipun perangkat terhubung ke sistem dan aktif.
Ilegal E_ILLEGAL Aplikasi POS mencoba operasi ilegal atau tidak didukung dengan perangkat, atau menggunakan nilai parameter yang tidak valid.
NoExist E_NOEXIST Nama file atau nilai lain yang ditentukan tidak ada.
NoHardware E_NOHARDWARE Perangkat POS tidak tersambung ke sistem atau tidak diaktifkan.
NoService E_NOSERVICE Objek Layanan tidak dapat berkomunikasi dengan perangkat, biasanya karena kesalahan penyiapan atau konfigurasi.
NotClaimed E_NOTCLAIMED Aplikasi POS mencoba mengakses perangkat yang digunakan secara eksklusif yang harus diklaim sebelum metode atau tindakan set properti dapat digunakan.
Offline E_OFFLINE Perangkat POS sedang offline.
Waktu habis E_TIMEOUT Objek Layanan kehabisan waktu menunggu respons dari perangkat POS.

Contoh

Contoh kode berikut menunjukkan bagaimana MSR menangani pengecualian POS dan menggunakan ErrorCodes yang terkandung dalam pengecualian tersebut untuk mengumpulkan informasi tentang mereka.

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

Lihat Juga

Referensi

Konsep

Sumber Daya Lain