Delphi menggunakan pendekatan event handling untuk penanganan error. Kesalahan adalah (kebanyakan) dianggap sebagai pengecualian, yang menyebabkan pengoperasian program untuk menunda dan melompat ke handler pengecualian terdekat. Jika kita tidak memiliki satu, ini akan menjadi default handler Delphi yang akan melaporkan kesalahan dan menghentikan program.
Try, except dimana masalah berada
Delphi menyediakan hanya membangun untuk membungkus kode dengan penanganan exception. Ketika pengecualian terjadi dalam kode terbungkus (atau apa pun itu panggilan), kode tersebut akan melompat ke exception handling bagian dari kode pembungkus:
begin
Try
...
The code we want to execute
...
Except
...
This code gets executed if an exception occurs in the above block
...
end;
end;
kita mencoba untuk mengeksekusi beberapa kode, yang akan berjalan kecuali jika kesalahan (pengecualian) terjadi. Kemudian kode kecuali akan mengambil alih.
Mari kita lihat contoh sederhana di mana kita sengaja membagi angka dengan nol:
var
number1, number0 : Integer;
begin
try
number0 := 0;
number1 := 1;
number1 := number1 div number0;
ShowMessage('1 / 0 = '+IntToStr(number1));
except
on E : Exception do
begin
ShowMessage('Exception class name = '+E.ClassName);
ShowMessage('Exception message = '+E.Message);
end;
end;
end;
Ketika pembagian gagal, kode melompat ke blok statement Exception . Pernyataan ShowMessage pertama sehingga tidak bisa dijalankan.
apa yangh terjadi ketika proses debugging
Perhatikan bahwa ketika Anda kode debug kita dalam Delphi, Delphi akan pengecualian perangkap bahkan jika kita memiliki exception handling. kita kemudian harus mengklik OK pada dialog kesalahan, lalu tekan F9 atau panah hijau untuk meneruskan statement exeception . kita bisa menghindari ini dengan mengubah pilihan debug.
And finally …
Misalkan bukannya menjebak kesalahan statement itu terjadi, kita mungkin ingin membiarkan tingkat pengecualian penangan yang lebih tinggi dalam kode kita untuk melakukan perangkap lebih global.
Delphi menyediakan bagian alternatif untuk pembungkus exception Akhirnya. Bukannya dipanggil ketika pengecualian terjadi, klausa akhirnya selalu disebut setelah sebagian atau semua statement coba dijalankan. Hal ini memungkinkan kita untuk membebaskan memori yang dialokasikan, atau kegiatan sejenis lainnya. Namun, tidak perangkap kesalahan – penanganan exception tertinggi berikutnya (Try) blok yang bersarang telah di alokasikan dan dieksekusi.
Sumber : readoneit.wordpress.com
No comments:
Post a Comment