Rabu, 21 Maret 2012

Try....Except di Delphi

oke,sekarang kita berkenalan dengan klausa try...except,berbeda dengan if...then...else,klausa try...except digunakan untuk menghandle error,untuk contoh kita coba dengan form seperti berikut:

niatya kita akan buat program untuk membagi bilangan dengan nol dan mengeksekusi perhitungan(pertambahan sih),namun jika kita salah input?? (maksudnya ada angka ada kata) so read this and check this.

keisengan pertama pada button1 coba ketik listing berikut:

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c : real;
begin
  a:=1;
  b:=0;
  c:=a/b;
  showmessage(floattostr(c));
end;
jalankan.
pasti begini:

dan sejak kapan ada bilangan yang bisa dibagi nol???wkwkwkkw]
nah,maka dari itu kita pakai error handler dengan menggunakan try...except,sebelum itu jump dulu kesini, pilih Tool - Debugger Options

lalu pilih Language Exceptions,dan uncheck(jangan ceklis) bagian Stop On Delphi Exceptions nya,OK.

lalu kita coba try...except nya,cuma tambah ko,maka kode baru tersebut jadi seperti ini:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c : real;
begin
  try
    a:=1;
    b:=0;
    c:=a/b;
    showmessage(floattostr(c));
  except
    showmessage('bilangan tidak bisa dibagi nol');
  end
end;
coba di run,dan anda bisa menghandle error bahwa showmessage('bilangan tidak bisa dibagi nol');
gampang kan??
begitu juga untuk perhitungan jika kita salah input,perhatikan kode dibawah:
procedure TForm1.Button2Click(Sender: TObject);
var a,b,c : integer;
begin
  a:=strtoint(edit1.Text);
  b:=strtoint(edit2.Text);
  c:=a+b;
  showmessage('hasil penjumlahan adalah = '+inttostr(c));
end;
hmmmmmm sepertinya kode diatas berjalan lancar2 saja,namun coba jika pada edittext jangan masukan angka,ex : karakter/kalimat/apa lah
pasti muncul begini :

maka dari itu gunakan kembali Try...Except.
ubah kode pada button2 menjadi seperti ini :
procedure TForm1.Button2Click(Sender: TObject);
var a,b,c : integer;
begin
  try
    a:=strtoint(edit1.Text);
    b:=strtoint(edit2.Text);
    c:=a+b;
    showmessage('hasil penjumlahan adalah = '+inttostr(c));
  except
    showmessage('jangan masukan kata men');
  end;
end;
jalankan kembali dan anda berhasil kembali.
anda tidak bisa memakai klausa if...then...else untuk menghandle code tersebut,eksepsi sangat diperlukan,artinya try....except adalah error handling dimana blok try adalah perintah untuk memaksa dan blok except adalah jika terjadi fatal error. so semoga bermanfaat.

0 komentar:

Posting Komentar

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | coupon codes