JavaRush /Java блогы /Random-KK /Java тіліндегі ерекшеліктер туралы ең жақсы 10 сұрақ
raynn
Деңгей
Нижний Новгород

Java тіліндегі ерекшеліктер туралы ең жақсы 10 сұрақ

Топта жарияланған
Мақалада Java тіліндегі ерекшеліктер туралы ең жиі қойылатын 10 сұрақ сипатталған. Java тіліндегі ерекшеліктер туралы ең жақсы 10 сұрақ - 1

1. Тексерілетін және тексерілмейтін

Қысқаша айтқанда, тексерілген ерекшеліктер әдіс денесінде анық ұсталуы немесе әдістің лақтыру бөлімінде жариялануы керек. Тексерілмеген ерекшеліктер шешілмейтін мәселелерден туындайды, мысалы, 0-ге бөлу, нөлдік көрсеткіш және т.б. Тексерілген ерекшеліктер әсіресе маңызды, себебі API пайдаланатын басқа әзірлеушілер ерекшеліктерді қалай өңдеу керектігін білуін күтесіз. Мысалы, IOException жиі қолданылатын тексерілген ерекшелік, ал RuntimeException - тексерілмеген ерекшелік. Әрі қарай оқымас бұрын, Java тіліндегі иерархиялық ерекшелік диаграммасын тексеріңіз .

2. Ерекшеліктермен күресудің ең жақсы жолы

Ерекше жағдайды дұрыс өңдеу мүмкін болса, оны ұстап алу керек, әйтпесе оны қайта жіберу керек.

3. try ішінде анықталған айнымалылар неге catch немесе соңында қолданыла алмайды?

Келесі code бөлігінде try блогында жарияланған жолды catch блогында пайдалану мүмкін емес. Бұл code компиляцияланбайды.
try {
	File file = new File("path");
	FileInputStream fis = new FileInputStream(file);
	String s = "inside";
} catch (FileNotFoundException e) {
	e.printStackTrace();
	System.out.println(s);
}
Себебі, сынақ блогында ерекше жағдайдың қай жерде шығарылғаны белгісіз. Ерекшелік нысан жарияланғанға дейін шығарылған болуы мүмкін. Және бұл мысалға қатысты.

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. Бір catch блогында бірнеше ерекшеліктерді ұстау мүмкін бе?

Жауап ИӘ. Осы ерекшеліктердің сыныптары класс мұрагерлігі иерархиясын бірдей суперклассқа дейін қадағалай алатын болса, тек сол суперклассты ғана пайдалануға болады.

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 блогында return қолдануға болады ма?

Иә болады.

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