Pengecualian dalaman dibangkitkan secara tersirat oleh sistem masa jalan, begitu juga dengan pengecualian yang ditentukan pengguna yang telah anda kaitkan dengan nombor ralat Oracle menggunakan EXCEPTION_INIT. Walau bagaimanapun, pengecualian lain yang ditentukan pengguna mesti dibangkitkan secara eksplisit oleh pernyataan RAISE.
Manakah pengecualian yang dibangkitkan secara tersirat?
Pengecualian yang dipratentukan dinaikkan secara tersirat (secara automatik) oleh sistem masa jalan. Pengecualian yang ditentukan pengguna mesti dibangkitkan secara eksplisit oleh pernyataan RAISE. Untuk mengendalikan pengecualian yang dibangkitkan, anda menulis rutin berasingan yang dipanggil pengendali pengecualian.
Manakah pengecualian yang dibangkitkan secara automatik oleh Oracle?
Pengecualian dalaman dinaikkan secara automatik jika program PL/SQL anda melanggar peraturan Oracle atau melebihi had bergantung kepada sistem. PL/SQL mentakrifkan beberapa ralat Oracle biasa sebagai pengecualian. Contohnya, PL/SQL menaikkan pengecualian yang dipratakrif NO_DATA_FOUND jika pernyataan SELECT INTO tidak mengembalikan baris.
Apakah pengecualian raise dalam Oracle?
Pernyataan RAISE menghentikan pelaksanaan biasa blok PL/SQL atau subprogram dan memindahkan kawalan kepada pengendali pengecualian. Pernyataan RAISE boleh menimbulkan pengecualian yang dipratentukan, seperti ZERO_DIVIDE atau NO_DATA_FOUND, atau pengecualian yang ditentukan pengguna yang namanya anda tentukan.
Apakah pengecualian yang tidak dipratentukan?
Pengecualian bukan pratakrif serupa dengan pengecualian pratakrif, kecualimereka tidak mempunyai nama yang dipratentukan. Mereka mempunyai nombor ralat Oracle standard (ORA-) dan mesej ralat. Fungsi EXCEPTION_INIT. Anda boleh memerangkap ralat pelayan Oracle yang tidak dipratentukan dengan mengisytiharkannya dahulu.