JavaRush /Java Blog /Random-TK /Java-da kadadan çykmalar barada iň gowy 10 sorag
raynn
Dereje
Нижний Новгород

Java-da kadadan çykmalar barada iň gowy 10 sorag

Toparda çap edildi
Makalada Java-da kadadan çykmalar barada iň köp berilýän 10 sorag beýan edilýär. Java-da kadadan çykmalar barada iň gowy 10 sorag - 1

1. Barlap boljak we tassyklap bolmaýan

Gysgaça aýdylanda, barlanylan kadadan çykmalar usul usulynda aç-açan tutulmalydyr ýa-da usulyň zyňylýan bölüminde yglan edilmelidir. Barlanmadyk kadadan çykmalar, 0-a bölmek, null görkeziji we ş.m. ýaly çözüp bolmaýan meseleler sebäpli ýüze çykýar. Barlanylan kadadan çykmalar aýratyn möhümdir, sebäbi API ulanýan beýleki işläp düzüjileriň kadadan çykmalary nädip çözmelidigini bilmegine garaşýarsyňyz. Mysal üçin, IOException köplenç ulanylýan barlanylýan kadadan çykma, RuntimeException bolsa barlanmadyk kadadan çykma. Has giňişleýin okamagyňyzdan ozal Java-da iýerarhiki kadadan çykma diagrammasyna göz aýlaň .

2. Kadadan çykmalar bilen iş salyşmagyň iň gowy usuly

Kadadan çykma dogry çözülip bilinýän bolsa, tutulmalydyr, ýogsam ugradylmalydyr.

3. Näme üçin synanyşykda kesgitlenen üýtgeýjileri tutmakda ýa-da ahyrynda ulanyp bolmaýar?

Aşakdaky kod böleginde, synag blokynda yglan edilen setirleri tutuş blokda ulanyp bolmaýar. Bu kod düzülmez
try {
	File file = new File("path");
	FileInputStream fis = new FileInputStream(file);
	String s = "inside";
} catch (FileNotFoundException e) {
	e.printStackTrace();
	System.out.println(s);
}
Munuň sebäbi, synanyşyk blokynda kadadan çykmanyň nirede taşlanandygy belli däl. Kadadan çykma obýekt yglan edilmezden öň atylan bolsa gerek. Bu mysal üçin dogry.

4. Näme üçin Double.parseDouble (null) we Integer.parseInt (null) dürli kadadan çykmalar edýär?

Dogry, olar dürli kadadan çykmalar edýärler. Bu JDK meselesi. Olary diňe dürli adamlar ýasapdyrlar we bu barada kän alada etmeli däl.
Integer.parseInt(null);
// вызывает java.lang.NumberFormatException: null

Double.parseDouble(null);
// вызывает java.lang.NullPointerException

5. Java-da iş wagtynyň kadadan çykmalary

Ine, olaryň birnäçesi:
IllegalArgumentException
ArrayIndexOutOfBoundsException
Olary şu ýerdäki ýaly şert ýerine ýetirilmedik ýagdaýynda jümlede ulanyp bolar:
if (obj == null) {
   throw new IllegalArgumentException("obj не может быть равно null");

6. Bir tutuş blokda birnäçe kadadan çykma alyp bolarmy?

Jogap hawa. Bu kadadan çykmalar synplaryny miras iýerarhiýasyny şol bir superklassa çenli yzarlap bolýança, diňe superklass ulanylyp bilner.

7. Konstruktor kadadan çykmalary taşlap bilermi?

Jogap hawa. Konstruktor diňe bir aýratyn usul. Ine kod mysaly.

8. Soňky blokda kadadan çykmalar

Aslynda, muny kanuny taýdan edip bilersiňiz:
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();
		}
	}
}
Theöne koduň okalmagyny üpjün etmek üçin, içerki bloky täze usul hökmünde yglan etmeli try-catchwe bu usula blokda jaň girizmeli 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. Ahyry bir blokda gaýdyp ulanyp bolarmy?

Hawa, edip bilersiň.

10. Näme üçin işläp düzüjiler kadadan çykmalary ýuwaşlyk bilen çözýärler?

Mysal üçin, şular ýaly kod bölekleri köplenç ýüze çykýar. Düzgüne kadadan çykmak gaty möhüm bolsa, näme üçin işläp düzüjiler beýle ýazmagy dowam etdirýärler?
try {
     ...
} catch(Exception e) {
     e.printStackTrace();
}
Oňa üns bermezlik iň aňsat. Thisöne bu köplenç edilse-de, munuň dogrydygyny aňlatmaýar. Salgylar:
  1. Java-da barlanmadyk kadadan çykmalar
  2. Java-da iýerarhiki kadadan çykma agajynyň kökü
  3. Stackoverflowdaky kadadan çykmalar barada soraglar
Asyl makala
Başga näme okamaly:

Java-da kadadan çykmalar

Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION