Wedi kesalahan, nanging aja ditulis nganggo basa Jawa! Sampeyan mbokmenawa wis ngerti sawetara bab pangecualian ing Jawa . Dina iki, paling sethithik kawruh sing entheng bakal entuk manfaat kanggo sampeyan. Kita bakal njelasno kelas Error lan jinis istiméwa khusus sing frightens akeh wong nalika katon ing ngambah tumpukan.

Ing ndhuwur hirarki pangecualian Jawa yaiku kelas Throwable , sing nduweni rong turunan:

  • Pangecualian , sing tanggung jawab kanggo kesalahan ing program sampeyan.
  • Lan pahlawan kita kanggo dina iki - Error , sing tanggung jawab kanggo kesalahan ing JVM.
    Perlu dielingake manawa iki uga dudu bug coding, nanging masalah sing biasane ora gumantung marang pangembang.

Apa sing kudu dilakoni karo Kesalahan

Nalika nyekel "kesalahan", sampeyan ora bisa nindakake tumindak ing blok nyekel , kajaba logging , awit kita ngomong bab masalah ing JVM dhewe.

Log apik: yen sampeyan entuk kesalahan runtime, sampeyan bisa ndeleng log, ndeleng sababe, lan ngerti apa sing kudu didandani.

Awit sampeyan ora ngerti apa jenis kesalahan sampeyan bisa njaluk nalika sampeyan nulis kode, iku ndadekake ora pangertèn kanggo nulis jinis tartamtu ing pemblokiran nyekel . Nggunakake kelas kesalahan dhewe uga dudu solusi sing paling apik, amarga ing kasus iki, sampeyan mung bakal nyekel kesalahan.

Mulane, luwih becik nggunakake kelas Throwable , sing bisa nyekel Error lan Exception . Kepiye carane iki katon ing laku?

Ora becik nulis kode kaya iki:

try {
    // Your code
} catch (OutOfMemoryError outOfMemoryError) {
    // Code to catch OutOfMemoryError
}
Nulis kode kaya iki uga ora OK:

try {
    // Your code
} catch (Error error) {
    // Code to catch all Errors
}
Nanging kode kaya iki OK:

try {
    // Your code
} catch (Throwable throwable) {
    // Code to catch all Throwables
}

Opsi kapindho kanggo nangani kesalahan yaiku mbuwang luwih dhuwur sawise nyatakake klausa mbuwang ing metode kasebut. Teknik iki digunakake nalika kode sampeyan bisa nggawe kesalahan kanthi teoritis lan sampeyan pengin menehi peringatan marang sapa wae sing bisa nggunakake kode sampeyan supaya bisa ngatasi kesalahan kasebut kanthi bener.

Kesalahan umum

Sawetara kesalahan sing paling populer yaiku kelas OutOfMemoryError lan StackOverflowError .

OutOfMemoryError asring katon nalika program ora duwe memori sing cukup kanggo nggawe obyek lan kolektor sampah ora bisa terus. Asil punika OutOfMemoryError .

Jawa ora ngidini sampeyan mbusak obyek kanthi manual kanggo nyegah kebocoran memori, nanging sampeyan bisa ngindhari uwuh supaya ora overwork ing kolektor sampah lan ora clutter munggah tumpukan.

Contone, kode kaya iki bakal nggawe akeh sampah ing memori:


while (true) {
    new Object();
}

Kesalahan kapindho sing arep dakkandhakake yaiku StackOverflowError , sing dibuwang nalika tumpukan kebanjiran. Wiwit tumpukan utamane nyimpen variabel lokal, paramèter, lan panggilan metode, rekursi (utawa panggilan metode rekursif) minangka panyebab umum kesalahan iki:


public void foo() {
    foo();
}

Kanggo ngindhari masalah sajrone eksekusi program, IDE modern asring ngelingake babagan cara nelpon kanthi rekursif.

Sampeyan ora bisa ndandani program sing mbalang kesalahan , nanging sampeyan bisa nulis kode sing ora bakal uncalan kesalahan lan break program. Nonton apa sing sampeyan lakoni nganggo memori, nggawe obyek kanthi ati-ati, lan nelpon metode kanthi bener. Yen sampeyan nindakake, sampeyan bakal duwe masalah luwih sithik ing kode sampeyan.

Bedane antarane jinis kesalahan lan pengecualian

Kesalahan Pangecualian
Ora bisa didandani ing blok nyekel Bisa ditangani ing blok nyekel
Ora kedadeyan ing wektu kompilasi Bisa kejiret ing wektu kompilasi
Masalah ing JVM Masalah ing logika kode
Kabeh Kasalahan ora dicenthang dicenthang lan ora dicenthang

Sampeyan ora bisa uwal pangecualian ing Jawa, nanging sampeyan ora kudu wedi wong. Sampeyan mung kudu ngerti apa sing diwakili saben jinis lan ngerti carane nangani. Iku kabeh kanggo dina iki! Sampai ketemu!