Вы находитесь на странице: 1из 3

Bentuk umum exception handler:

DECLARE handler_type HANDLER


FOR condition_value [, condition_value] ...
statement

handler_type:
CONTINUE
| EXIT
| UNDO

condition_value:
SQLSTATE [VALUE] sqlstate_value
| condition_name
| SQLWARNING
| NOT FOUND
| SQLEXCEPTION
| mysql_error_code

deklarasi ... Pernyataan untuk menetapkan penangan yang mungkin


berhubungan dengan satu atau lebih kondisi. Jika salah satu kondisi ini terjadi,
pernyataan tertentu dijalankan.

pernyataan dapat berupa pernyataan yang sederhana (misalnya, nilai var_name


SET =), atau dapat menjadi pernyataan senyawa yang dapat ditulis menggunakan
BEGIN dan END .

Untuk continue handling, eksekusi dari program saat ini berlanjut setelah
pelaksanaan pernyataan handler. Untuk handler EXIT, eksekusi berakhir untuk
(BEGIN ... END) pernyataan majemuk di mana pernyataan digunakan. (Hal ini
berlaku bahkan jika kondisi ini terjadi di blok bagian dalam.) Pengendali an UNDO
adalah jenis pernyataan yang tidak didukung.

Jika kondisi yang terjadi tidak ada ataupun handler telah dinyatakan sebelumnya
,maka tindakan yang dilakukan adalah EXIT.

Sebuah condition_value untuk DECLARE ... HANDLER didapatkan dari salah satu
dari nilai berikut:

Sebuah SQLSTATE nilai (string 5-karakter literal) atau kode kesalahan MySQL
(angka). Anda tidak boleh menggunakan nilai SQLSTATE '00000 'atau MySQL kode
kesalahan 0, karena angka ini menunjukkan keberhasilan daripada kesalahan.
*

SQLWARNING adalah istilah untuk nilai kelas SQLSTATE yang dimulai dengan
'01 '.
*

NOT FOUND adalah istilah untuk nilai kelas SQLSTATE yang dimulai dengan '02
'. Hal ini relevan hanya dalam konteks kursor dan digunakan untuk mengontrol apa
yang terjadi ketika kursor mencapai akhir kumpulan data. Jika tidak ada baris yang
tersedia, sebaliknya jika data Tidak nilai SQLSTATE adalah 02000. Untuk
mendeteksi kondisi ini, kita dapat mengatur handler yang kita inginkan (atau untuk
kondisi NOT FOUND ).
*

SQLEXCEPTION adalah istilah untuk nilai SQLSTATE yang tidak dimulai dengan
'00 ', '01', atau '02 '.

Berikut ini adalah hasil Output dari perintah exception handler :


misalnya handler dengan nilai SQLSTATE '23000 ', yang kita gunakan diatas adalah
untuk kesalahan-kunci duplikat seperti yang terjadi pada value dengan primary key B031.
Perhatikan bahwa @ x adalah 3 setelah prosedur dijalankan, yang menunjukkan bahwa program
mengeksekusi terus sampai dengan akhir prosedur. Jika DECLARE ... HANDLER menyatakan
tidak ada, maka MySQL akan mengambil jalan default yaitu (EXIT) setelah INSERT kedua
gagal, karena kendala PRIMARY KEY, dan SELECT @ x akan kembali 2.

Вам также может понравиться