Java Virtual Machine (sabanjuré diarani JVM) ngolah kode lan nglakokaké cara siji-sijine, diwiwiti kanthi metode
main
. Nalika tekan cara sabanjuré, ngandika cara iki ing ndhuwur tumpukan. Sawise cara wis rampung kaleksanan, iku dibusak saka tumpukan lan diganti dening sing sabanjuré ing antrian. Kanggo nduduhake prinsip kasebut, ketik kode iki:
package errorhandling;
public class errorChecking {
public static void main(String[] args) {
System.out.println("Метод Main успешно запущен");
m1();
System.out.println("Метод Main заканчивает свою работу");
}
static void m1() {
System.out.println("Первый метод передаёт привет!(m1)");
m2();
}
static void m2() {
System.out.println("Второй метод передаёт привет(m2)");
}
}
Kita duwe telung cara: metode main
, metode m1
lan metode m2
. Nalika program diwiwiti, cara kasebut ana ing sisih ndhuwur tumpukan main
. Ing salebeting metode menika main
dipunsebat metode m1
. Nalika diarani, dheweke mlumpat menyang ndhuwur tumpukan. Cara kasebut m1
diarani m2
. Saiki cara kasebut m2
mlumpat menyang ndhuwur tumpukan, mbusak sementara m1
. Bayangake iki sedhela - main
ing ndhuwur m1
lan ndhuwur m2
! Sawise rampung bisnis, m2
mungkasi lan kontrol bali menyang m1
. Cara m1
, yen wis rampung, uga dibusak saka tumpukan, lan kontrol maneh diwenehi cara main
. Jalanake program sampeyan lan deleng jendhela output: Cara utama mlaku kanthi sukses Cara pisanan ngucapake hello!(m1) Cara kapindho ngomong hello(m2) Cara utama metu Yen ana sing salah ing metode m2
, JVM (Java Virtual Machine) ), sampeyan elinga, ta?) bakal nggoleki panangan kesalahan, contone blok try … catch
. Yen ora ana kesalahan ing m1
cara handler kesalahan, pangecualian bakal diterusake menyang metode kasebut m1
, kanthi pangarep-arep supaya bisa ngatasi. Yen ora ndeteksi handler kesalahan kene, pangecualian bakal maneh munggah tumpukan, wektu iki kanggo cara main
. Yen cara main
ora nyekel pangecualian, sampeyan bakal entuk pesen kesalahan aneh sing dicithak ing jendhela output. Minangka conto, gawe cara sampeyan m2
kaya iki:
static void m2() {
int x = 10;
int y = 0;
double z = x / y;
System.out.println( z );
System.out.println("Method Two - m2");
}
Cara iki ngemot divisi kanthi kesalahan nol. Iki versi lengkap program, priksa karo sampeyan:
package errorhandling;
public class errorChecking {
public static void main(String[] args) {
System.out.println("Метод Main успешно запущен");
m1();
System.out.println("Метод Main заканчивает свою работу");
}
static void m1() {
System.out.println("Первый метод передаёт привет!(m1)");
m2();
}
static void m2() {
int x = 10;
int y = 0;
double z = x / y;
System.out.println( z );
System.out.println("Method Two - m2");
}
}
Mbukak program lan ndeleng apa jendhela output menehi sampeyan: Cara utama mlaku kasil Cara pisanan ngandika hello!(m1) Pangecualian ing thread "utama" java.lang.ArithmeticException: / dening nul ing errorhandling.errorChecking.m2(<u >errorChecking. java:17</u>) ing errorhandling.errorChecking.m1(<u>Solution.java:11</u>) ing errorhandling.errorChecking.main(<u>>Solution.java:5</u >) Proses rampung karo kode metu 1 Sampeyan ndeleng soko disebut tilak tumpukan. Telung garis sing digaris biru nuduhake cara sampeyan, lan bisa ditemokake ing: Name_пакета.Name_класса.Name_метода
Baris pisanan saka ndhuwur yaiku ana kesalahan - ing metode m2
. Jawa mesthekake yen wis ditangani ing cara ArithmeticException
sing kejiret divisi dening nul kasalahan. Ora ana handler kesalahan ing m2
, m1
lan cara. main
Dadi program diproses nganggo panangan kesalahan standar. Ganti cara sampeyan m1
menyang ing ngisor iki:
try {
System.out.println("Первый метод передаёт привет!(m1)");
m2( );
}
catch (ArithmeticException err) {
System.out.println(err.getMessage());
}
Saiki kita wis mbungkus metode kasebut m2
ing blok try
. Sebagean catch
, kita nggunakake jinis pangecualian sing dideteksi ing tilak tumpukan - ArithmeticException
. Mbukak kode maneh lan sampeyan bakal weruh ing ngisor iki ing jendhela output: Cara Utama mlaku kasil Cara pisanan ngandika hello!(m1) / dening nul Metode utama metu Kabar yen pesen kesalahan wis dicithak minangka: " / dening nol " . Cara kasebut m2
ora dieksekusi kanthi lengkap, nanging mandheg nalika ana kesalahan. Kontrol banjur ditransfer maneh m1
. Iki kedadeyan amarga pamblokiran catch
dhewe ngerteni kesalahan kasebut; JVM ora ngubungi panangan kesalahan standar, nanging nampilake pesen sing ana ing antarane kurung kriting blok kasebut catch
. Elinga yen program kasebut dhewe durung mandheg. Kontrol, kaya biasane, pindhah menyang cara main
sing m1
diarani. Lan baris pungkasan saka metode kasebut main
bisa nampilake " Metode Utama Akhir ". Iki penting banget. Yen sampeyan perlu nilai saka m1
, kanggo karya sakteruse nang endi wae ing main
. Lan yen regane ora ana, mula program sampeyan bisa uga ora bisa digunakake kaya sing dikarepake. Nalika sampeyan ndeleng tilak tumpukan ing jendhela output, mung ngerti sing baris pisanan ana masalah, lan garis isih (yen ana mesthi) ngendi pangecualian propagated munggah tumpukan, biasane mungkasi karo main
. Terjemahan saka homeandlearn.co.uk Matur nuwun kanggo: Sergei Sysoev, Treefeed...
GO TO FULL VERSION