Artikel kasebut nerangake 10 pitakonan sing paling kerep ditakoni babagan pengecualian ing Jawa.
1. Verifiable lan unverifiable
Cekakipun, pangecualian dicenthang kudu tegas kejiret ing awak metode utawa diumumake ing bagean mbalang saka cara. Pengecualian sing ora dicenthang disebabake masalah sing ora bisa ditanggulangi, kayata divisi kanthi 0, null pointer, lsp. Pangecualian sing dicenthang penting banget amarga sampeyan ngarepake pangembang liyane nggunakake API sampeyan ngerti carane nangani pengecualian. Contone, IOException minangka pangecualian sing dicenthang sing umum digunakake, dene RuntimeException minangka pangecualian sing ora dicenthang. Sadurunge maca luwih lanjut, priksa
Diagram Pengecualian Hierarki ing Jawa .
2. Cara paling apik kanggo menehi hasil karo pangecualian
Yen pangecualian bisa ditangani kanthi bener, kudu dicekel, yen ora, kudu diterusake.
3. Apa ora variabel ditetepake ing nyoba digunakake ing nyekel utawa pungkasanipun?
Ing potongan kode ing ngisor iki, baris sing diumumake ing blok nyoba ora bisa digunakake ing blok nyekel. Kode iki ora bakal kompilasi.
try {
File file = new File("path");
FileInputStream fis = new FileInputStream(file);
String s = "inside";
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println(s);
}
Alesane yaiku ora dingerteni ing endi persis ing blok coba sing bisa uga dibuwang. Bisa uga pengecualian kasebut dibuwang sadurunge obyek kasebut diumumake. Lan iki bener kanggo conto iki.
4. Apa Double.parseDouble (null) lan Integer.parseInt (null) mbuwang pangecualian beda?
Bener, dheweke nggawe macem-macem pengecualian. Iki masalah JDK. Dheweke mung dirancang dening wong sing beda-beda, lan sampeyan ora perlu kuwatir.
Integer.parseInt(null);
Double.parseDouble(null);
5. Pangecualian runtime dhasar ing Jawa
Ing ngisor iki sawetara:
IllegalArgumentException
ArrayIndexOutOfBoundsException
Bisa digunakake ing pernyataan yen nalika kondisi kasebut ora bisa ditemokake, kaya ing kene:
if (obj == null) {
throw new IllegalArgumentException("obj не может быть равно null");
6. Apa bisa nyekel sawetara pangecualian ing siji pemblokiran nyekel?
Jawabane YA. Anggere kelas pangecualian kasebut bisa dilacak munggah hirarki warisan kelas menyang superclass padha, mung superclass bisa digunakake.
7. Bisa konstruktor uncalan istiméwa?
Jawabane YA. Konstruktor mung minangka cara khusus.
Punika conto kode.
8. Mbuwang istiméwa ing pemblokiran final
Ing asas, sampeyan bisa nindakake iki kanthi sah:
public static void main(String[] args) {
File file1 = new File("path1");
File file2 = new File("path2");
try {
FileInputStream fis = new FileInputStream(file1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
FileInputStream fis = new FileInputStream(file2);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
Nanging kanggo njaga readability saka kode, sampeyan kudu wara-wara pemblokiran nested
try-catch
minangka cara anyar, lan masang telpon kanggo cara iki menyang pemblokiran
finally
.
public static void main(String[] args) {
File file1 = new File("path1");
File file2 = new File("path2");
try {
FileInputStream fis = new FileInputStream(file1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
methodThrowException();
}
}
9. Iku bisa kanggo nggunakake bali ing pemblokiran pungkasanipun?
Ya, sampeyan bisa.
10. Napa pangembang nangani pengecualian kanthi tenang?
Contone, potongan kode kasebut asring katon. Yen penanganan pengecualian sing tepat penting banget, kenapa pangembang terus nulis kanthi cara iki?
try {
...
} catch(Exception e) {
e.printStackTrace();
}
Paling gampang digatekake. Nanging sanajan iki asring ditindakake, iki ora ateges sing bener. Pranala:
- Pangecualian sing ora dicenthang ing Jawa
- Oyod saka wit istiméwa hirarkis ing Jawa
- Pitakonan babagan pangecualian ing stackoverflow
Artikel asli
GO TO FULL VERSION