JavaRush /Блоги Java /Random-TG /Top 10 Саволҳо дар бораи истисноҳо дар Java
raynn
Сатҳи
Нижний Новгород

Top 10 Саволҳо дар бораи истисноҳо дар Java

Дар гурӯҳ нашр шудааст
Дар мақола 10 саволҳои бештар додашуда дар бораи истисноҳо дар Java тасвир шудааст. 10 Саволҳои беҳтарин дар бораи истисноҳо дар Java - 1

1. Санҷишшаванда ва тасдиқнашаванда

Хулоса, истисноҳои тафтишшуда бояд дар бадани метод ба таври возеҳ сабт карда шаванд ё дар қисмати партовҳои метод эълон карда шаванд. Истисноҳои тафтишнашуда аз сабаби мушкилоте, ки ҳалнашавандаанд, ба монанди тақсим ба 0, нишондиҳандаи нул ва ғ. Истисноҳои санҷидашуда махсусан муҳиманд, зеро шумо интизоред, ки таҳиягарони дигар API-и худро истифода мебаранд, то бидонанд, ки чӣ гуна истисноҳоро идора кунанд. Масалан, IOException як истиснои санҷидашудаи маъмулан истифодашаванда аст, дар ҳоле ки RuntimeException истиснои тафтишнашуда аст. Пеш аз хондани минбаъда, Диаграммаи истисноии иерархӣ дар Java -ро санҷед .

2. Беҳтарин роҳи мубориза бо истисноҳо

Агар истисноро дуруст коркард кардан мумкин бошад, он бояд дастгир карда шавад, вагарна он бояд интиқол дода шавад.

3. Чаро тағирёбандаҳои дар try муайяншуда дар catch ё ниҳоят истифода намешаванд?

Дар порчаи codeи зерин, сатри дар блоки озмоиш эълоншуда дар блоки сайд истифода намешавад. Ин code тартиб дода намешавад.
try {
	File file = new File("path");
	FileInputStream fis = new FileInputStream(file);
	String s = "inside";
} catch (FileNotFoundException e) {
	e.printStackTrace();
	System.out.println(s);
}
Сабаб дар он аст, ки маълум нест, ки дар блоки озмоишӣ истисно метавонад дар куҷо партофта шуда бошад. Мумкин аст, ки истисно пеш аз эълони an object партофта шуда бошад. Ва ин барои ин мисол дуруст аст.

4. Чаро Double.parseDouble(null) ва Integer.parseInt(null) истисноҳои гуногунро мепартоянд?

Ин дуруст аст, онҳо истисноҳои гуногунро ба миён меоранд. Ин як масъалаи JDK аст. Онҳо танҳо аз ҷониби одамони гуногун тарҳрезӣ шудаанд ва шумо набояд аз ин зиёд хавотир шавед.
Integer.parseInt(null);
// вызывает java.lang.NumberFormatException: null

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

5. Истисноҳои асосии вақти корӣ дар Java

Инҳоянд чанде аз онҳо:
IllegalArgumentException
ArrayIndexOutOfBoundsException
Онҳоро дар изҳороти if истифода бурдан мумкин аст, вақте ки шарт иҷро нашудааст, ба монанди ин ҷо:
if (obj == null) {
   throw new IllegalArgumentException("obj не может быть равно null");

6. Оё мумкин аст, ки дар як блоки сайд якчанд истисноҳоро сайд кард?

Ҷавоб ҲА аст. То он даме, ки синфҳои ин истисноҳо метавонанд иерархияи мероси синфро то ҳамон суперкласс пайгирӣ кунанд, танҳо он суперсинфро истифода бурдан мумкин аст.

7. Оё конструктор истисноҳоро партофта метавонад?

Ҷавоб ҲА аст. Конструктор танҳо як намуди махсуси усул аст. Дар ин ҷо як мисоли code аст.

8. Партофтани истисноҳо дар блоки ниҳоӣ

Дар асл, шумо метавонед ин корро комилан қонунӣ кунед:
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();
		}
	}
}
Аммо барои нигоҳ доштани хониши code, шумо бояд блоки лонаро try-catchҳамчун усули нав эълон кунед ва зангро ба ин усул ба блок ворид кунед 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 истифода бурдан мумкин аст?

Бале, шумо метавонед.

10. Чаро таҳиягарон истисноҳоро оромона ҳал мекунанд?

Масалан, чунин қисмҳои code аксар вақт пайдо мешаванд. Агар коркарди дурусти истисно ин қадар муҳим бошад, чаро таҳиягарон ин тавр навиштанро идома медиҳанд?
try {
     ...
} catch(Exception e) {
     e.printStackTrace();
}
Беэътиноӣ кардан осонтарин аст. Аммо ҳатто агар ин аксар вақт анҷом дода шавад, ин маънои онро надорад, ки он дуруст аст. Пайвандҳо:
  1. Истисноҳои тафтишнашуда дар Java
  2. Решаи дарахти истисноии иерархӣ дар Java
  3. Саволҳо дар бораи истисноҳо дар stackoverflow
Мақолаи аслӣ
Боз чӣ бояд хонд:

Истисноҳо дар Java

Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION