Seperti yang dibahas dalam pengenalan Penanganan Pengecualian PL/SQL, ada tiga cara untuk mendeklarasikan pengecualian yang ditentukan pengguna. Di antara ketiga cara tersebut, kita telah mempelajari dua cara pertama yang mendeklarasikan pengecualian yang ditentukan pengguna menggunakan
- Angkat Pernyataan dan
- Prosedur Naikkan_Application_Error
Satu-satunya cara yang tersisa untuk dibahas sekarang adalah mendeklarasikan pengecualian yang ditentukan pengguna menggunakan fungsi PRAGMA EXCEPTION_INIT di Oracle Database.
Jadi dalam tutorial PL/SQL ini kita akan belajar bagaimana mendeklarasikan pengecualian yang ditentukan pengguna PL/SQL di Oracle Database dengan menggunakan fungsi PRAGMA EXCEPTION_INIT.
Apa itu PRAGMA EXCEPTION_INIT?
Pragma Exception_Init adalah pernyataan dua bagian di mana bagian pertama terdiri dari kata kunci PRAGMA dan bagian kedua adalah panggilan Exception_Init.
Kata Kunci PRAGMA
Pragma adalah direktif kompiler yang menunjukkan bahwa Pernyataan diikuti oleh kata kunci PRAGMA adalah pernyataan direktif kompilator ini berarti bahwa pernyataan akan diproses pada waktu kompilasi &bukan pada saat runtime.
PRAGMA Exception_Init
Exception_init membantu Anda dalam mengasosiasikan nama pengecualian dengan nomor kesalahan Oracle. Dengan kata lain kita dapat mengatakan bahwa menggunakan Exception_Init Anda dapat memberi nama pengecualian.
Mengapa menyebut pengecualian?
Ya, ada cara untuk mendeklarasikan pengecualian yang ditentukan pengguna tanpa nama dan itu adalah dengan menggunakan prosedur Raise_Exception_Error. Ini memang cara yang sederhana dan mudah tetapi seperti yang kita pelajari di tutorial terakhir bahwa untuk menangani pengecualian tanpa nama, kita menggunakan pengendali pengecualian LAINNYA.
Sekarang pikirkan bahwa dalam proyek Anda, Anda memiliki banyak pengecualian dan itu juga tanpa nama. Untuk menangani semua pengecualian itu, Anda memiliki satu pengendali pengecualian dengan nama LAINNYA. Dalam hal ini, saat terjadinya kondisi pengecualian, kompilator akan menampilkan tumpukan kesalahan yang dihasilkan oleh pengendali LAINNYA.
Bisakah Anda bayangkan betapa sulitnya melacak bagian proyek Anda yang menyebabkan kesalahan. Untuk melacak bagian itu, Anda harus menelusuri setiap &setiap baris kode Anda. Ini hanya akan membuang-buang waktu.
Anda dapat menghemat waktu membuang-buang waktu hanya dengan memberi nama pengecualian, dengan cara itu Anda dapat merancang penangan pengecualian khusus untuk nama pengecualian Anda yang akan mudah dilacak. Ini adalah keuntungan dari penamaan pengecualian.
Sintaks Pragma Exception_Init.
PRAGMA EXCEPTION_INIT (exception_name, error_number);
Contoh:Deklarasikan pengecualian yang ditentukan pengguna menggunakan Pragma Exception_Init
DECLARE ex_age EXCEPTION; age NUMBER := 17; PRAGMA EXCEPTION_INIT(ex_age, -20008); BEGIN IF age<18 THEN RAISE_APPLICATION_ERROR(-20008, 'You should be 18 or above for the drinks!'); END IF; DBMS_OUTPUT.PUT_LINE('Sure! What would you like to have?'); EXCEPTION WHEN ex_age THEN DBMS_OUTPUT.PUT_LINE(SQLERRM); END; /
Saya telah menjelaskan contoh ini di Tutorial Video saya di saluran YouTube saya secara rinci, saya akan meminta Anda untuk melihat tutorial di sana.
Mengapa menggunakan PRAGMA EXCEPTION_INIT dengan RAISE_APPLICATION_ERROR?
Meskipun tidak wajib untuk menggunakan PRAGMA EXCEPTION_INIT dengan prosedur RAISE_APPLICATION_ERROR namun lebih merupakan preferensi pribadi daripada aturan pemrograman. Jika Anda ingin mencetak pesan kesalahan dengan nomor kesalahan seperti cara standar Oracle untuk menunjukkan kesalahan, maka praktik terbaik adalah menggunakan PRAGMA EXCEPTION_INIT dengan prosedur RAISE_APPLICATION_ERROR.
Tetapi jika Anda hanya ingin mencetak pesan kesalahan &bukan nomor kesalahan maka Anda dapat menggunakan PRAGMAEXCEPTION_INIT dengan pernyataan RAISE.
Itulah tutorial PL/SQL tentang cara mendeklarasikan pengecualian yang ditentukan pengguna di Oracle Database menggunakan PRAGMA EXCEPTION_INIT. Semoga Anda belajar sesuatu yang baru. Jika Anda menemukan tutorial ini informatif, maka bagikan di media sosial Anda. Terima kasih &semoga harimu menyenangkan!