Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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;
}
}