andrypein.net : Allrite sekarang kita berkenalan dengan klausa try except di delphi, 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 bagaimana jika kita salah input??
Maksudnya saat kita input justru bukan angka tapi malah karakter/huruf.
Percobaan 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 akan muncul eror seperti ini :
Alias sejak kapan ada bilangan yang bisa dibagi nol?
Maka dari itu kita pakai error handler dengan menggunakan try except,sebelum bisa menggunakan klausa tersebut terlebih dahulu pilih Tool – Debugger Options.
Lalu pilih Language Exceptions, dan uncheck bagian Stop On Delphi Exceptions nya, lalu OK.
Lalu kita coba try except nya, kode pada button1 kita modif sedikit sehingga menjadi kode baru 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 aplikasi ,dan ahirnya klean bisa menghandle error dengan menampilkan popup ‘bilangan tidak bisa dibagi nol‘, gampang kan?
Begitu juga untuk perhitungan jika kita salah input, perhatikan kode dibawah untuk sisa button nya :
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;
Kode tidak ada yang salah dan apabila kita masukan angka akan berjalan lancar2 saja, namun coba jika pada input text nya jangan masukan angka (karakter/kalimat/apa lah) pasti akan muncul error begini :
Mari kita atasi dengan penanganan kesalahan dengan menggunakan 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.
Artinya anda tidak bisa memakai klausa if…then…else untuk menghandle code tersebut, eksepsi sangat diperlukan.
Try….except adalah error handling dimana blok try adalah perintah untuk memaksa dan blok except adalah eksekusi skrip untuk ngethrow jika terjadi fatal error.
mantaap
gan
kalo di lazarus gimana cara matiin stop on delphi exception
makasih gan udah ngingetin,post yng ntar ane bahas :jabat
nuhun Gan….