Bagikan melalui


Makro RpcExcept (rpc.h)

Pernyataan RpcExcept menyediakan penanganan pengecualian terstruktur untuk aplikasi RPC.

Windows Vista dan versi Windows yang lebih baru: RpcExceptionFilter direkomendasikan untuk penanganan pengecualian terstruktur untuk pengecualian yang paling umum sebagai alternatif untuk filter kustom dengan RpcExcept. Namun, filter pengecualian kustom masih harus menggunakan RpcExcept.

Sintaks

void RpcExcept(
   expr
);

Parameter

expr

Ekspresi yang dievaluasi saat pengecualian terjadi. Jika ekspresi mengevaluasi ke nilai bukan nol, pernyataan pengecualian akan dijalankan. Jika ekspresi mengevaluasi ke nilai nol, unwinding berlanjut ke fungsi RpcTryExcept atau RpcTryFinally berikutnya.

Nilai kembali

Tidak ada

Keterangan

Jika pengecualian tidak terjadi, pernyataan ekspresi dan pengecualian dilewati dan eksekusi berlanjut pada pernyataan setelah pernyataan RpcEndExcept .

Pernyataan majemuk setelah klausul RpcTryExcept adalah bagian isi atau yang dijaga. Pernyataan majemuk setelah klausul RpcExcept adalah handler pengecualian. Handler menentukan serangkaian tindakan yang akan diambil jika pengecualian dinaikkan selama eksekusi isi bagian yang dijaga. Eksekusi dilanjutkan sebagai berikut:

  1. Bagian yang dijaga dijalankan.
  2. Jika tidak ada pengecualian yang terjadi selama eksekusi bagian yang dijaga, eksekusi berlanjut pada pernyataan setelah klausul RpcEndExcept .
  3. Jika pengecualian terjadi selama eksekusi bagian yang dijaga atau dalam rutinitas panggilan bagian yang dijaga, ekspresi __except dievaluasi dan nilai menentukan bagaimana pengecualian ditangani. Ada tiga nilai:
    • EXCEPTION_CONTINUE_EXECUTION (–1) Pengecualian diberhentikan. Lanjutkan eksekusi pada titik di mana pengecualian terjadi.
    • EXCEPTION_CONTINUE_SEARCH (0) Pengecualian tidak dikenali. Lanjutkan mencari tumpukan untuk handler, pertama untuk berisi pernyataan try-except, lalu untuk handler dengan prioritas tertinggi berikutnya.
    • Pengecualian dikenali. Transfer kontrol ke handler pengecualian dengan menjalankan pernyataan gabungan __except, lalu lanjutkan eksekusi setelah blok __except.
Karena ekspresi RpcExcept dievaluasi sebagai ekspresi C, ekspresi tersebut terbatas pada satu nilai, operator ekspresi kondisional, atau operator koma. Jika diperlukan pemrosesan yang lebih ekstensif, ekspresi dapat memanggil sebuah rutin yang mengembalikan salah satu dari tiga nilai yang tercantum di atas.

RpcExceptionCode dapat digunakan dalam pernyataan ekspresi dan pengecualian untuk menentukan pengecualian mana yang terjadi.

Pembatasan berikut berlaku:

  • Melompat (melalui goto) ke pernyataan yang dijaga tidak diperbolehkan.
  • Melompat (melalui goto) ke dalam pernyataan pengecualian tidak diperbolehkan.
  • Mengembalikan atau melompat (melalui goto) dari pernyataan yang dijaga tidak diizinkan.
  • Mengembalikan atau melompat (melalui goto) dari pernyataan pengecualian tidak diizinkan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header rpc.h

Lihat juga

Penanganan Pengecualian

RpcExceptionCode

RpcExceptionFilter

RpcFinally

RpcRaiseException