JavaRush /Java Blogu /Random-AZ /Java-da İstisnalar haqqında Top 10 Sual
raynn
Səviyyə
Нижний Новгород

Java-da İstisnalar haqqında Top 10 Sual

Qrupda dərc edilmişdir
Məqalə Java-da istisnalar haqqında ən çox verilən 10 sualı təsvir edir. Java-da İstisnalar haqqında Top 10 Sual - 1

1. Doğrulana bilən və yoxlanıla bilməyən

Qısacası, yoxlanılan istisnalar metodun gövdəsində açıq şəkildə tutulmalı və ya metodun atışlar bölməsində elan edilməlidir. Yoxlanılmayan istisnalar həll edilə bilməyən problemlər, məsələn, 0-a bölmə, null göstərici və s. Yoxlanmış istisnalar xüsusilə vacibdir, çünki siz API-dən istifadə edən digər tərtibatçıların istisnaları necə idarə edəcəyini bilmələrini gözləyirsiniz. Məsələn, IOException çox istifadə edilən yoxlanılan istisnadır, RuntimeException isə yoxlanılmamış istisnadır. Daha ətraflı oxumadan əvvəl Java-da İerarxik İstisna Diaqramına baxın .

2. İstisnalarla məşğul olmağın ən yaxşı yolu

İstisna düzgün idarə oluna bilərsə, tutulmalı, əks halda yönləndirilməlidir.

3. try-də müəyyən edilmiş dəyişənlər niyə catch və ya son olaraq istifadə edilə bilməz?

Aşağıdakı kod parçasında try blokunda elan edilmiş sətir tutma blokunda istifadə edilə bilməz. Bu kod tərtib edilməyəcək.
try {
	File file = new File("path");
	FileInputStream fis = new FileInputStream(file);
	String s = "inside";
} catch (FileNotFoundException e) {
	e.printStackTrace();
	System.out.println(s);
}
Səbəb odur ki, sınaq blokunda istisnanın tam olaraq hara atılmış ola biləcəyi məlum deyil. Ola bilsin ki, istisna obyekt elan edilməmişdən əvvəl atılıb. Və bu misal üçün doğrudur.

4. Nə üçün Double.parseDouble(null) və Integer.parseInt(null) fərqli istisnalar atır?

Düzdür, onlar müxtəlif istisnalar qaldırırlar. Bu JDK məsələsidir. Onlar sadəcə müxtəlif insanlar tərəfindən hazırlanmışdır və bu barədə çox narahat olmamalısınız.
Integer.parseInt(null);
// вызывает java.lang.NumberFormatException: null

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

5. Java-da əsas iş vaxtı istisnaları

Onlardan bir neçəsini təqdim edirik:
IllegalArgumentException
ArrayIndexOutOfBoundsException
Şərt yerinə yetirilmədikdə, onlar if ifadəsində istifadə edilə bilər, burada olduğu kimi:
if (obj == null) {
   throw new IllegalArgumentException("obj не может быть равно null");

6. Bir tutma blokunda çoxlu istisnaları tutmaq mümkündürmü?

Cavab HƏ-dir. Nə qədər ki, bu istisnaların sinifləri sinif irsiyyət iyerarxiyasından eyni supersinifə qədər izlənilə bilər, yalnız həmin supersinif istifadə edilə bilər.

7. Konstruktor istisnalar ata bilərmi?

Cavab HƏ-dir. Konstruktor sadəcə xüsusi bir metod növüdür. Budur bir kod nümunəsi.

8. Son blokda istisnaların atılması

Prinsipcə, bunu qanuni olaraq edə bilərsiniz:
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();
		}
	}
}
Lakin kodun oxunaqlılığını qorumaq üçün siz yuvalanmış bloku try-catchyeni metod kimi elan etməli və bloka bu metoda zəng daxil etməlisiniz 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. Finally blokunda return istifadə etmək mümkündürmü?

Bəli sən bacararsan.

10. Nə üçün tərtibatçılar istisnaları sakitcə həll edirlər?

Məsələn, belə kod parçaları tez-tez görünür. İstisnaların düzgün idarə edilməsi bu qədər vacibdirsə, tərtibatçılar niyə bunu bu şəkildə yazmağa davam edirlər?
try {
     ...
} catch(Exception e) {
     e.printStackTrace();
}
Buna məhəl qoymamaq ən asandır. Ancaq bu, tez-tez edilsə belə, bu, düzgün olduğunu bildirmir. Linklər:
  1. Java-da yoxlanılmamış İstisnalar
  2. Java-da iyerarxik istisna ağacının kökü
  3. Stackoverflow-da istisnalar haqqında suallar
Orijinal məqalə
Başqa nə oxumaq lazımdır:

Java-da istisnalar

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION