Javaда каталар кандай иштелип чыгат жана алар менен кантип иштеш керек?
sobes.tech AI
AIден жооп
Javaда каталар исключения механизми аркылуу иштетилет. Исключения — бул программаны иштетүүнүн нормалдуу агымын бузган окуялар. Ике түрү бар: Checked Exceptions жана Unchecked Exceptions.
Checked Exceptions:
java.lang.Exceptionклассынан мурас алат (RuntimeExceptionдан башка).- Алар обязательдуу түрдө иштетилиши керек (try-catch аркылуу) же методтун сигнатурасында көрсөтүлүшү керек (throws аркылуу).
- Күндөлүк шарттарда пайда боло турган каталар (мисалы, IOException, FileNotFoundException).
Unchecked Exceptions:
java.lang.RuntimeExceptionжеjava.lang.Errorклассынан мурас алат.- Алардын иштетилиши милдеттүү эмес.
- Логикалык каталарга же иштөө чөйрөсүнүн күтүүсүз абалына байланыштуу каталар (NullPointerException, ArrayIndexOutOfBoundsException).
Исключенияны иштетүү:
try-catch-finally блоктору колдонулат:
try: Исключение чыгышы мүмкүн болгон код.catch:tryблокто белгилүү бир түрдөгү исключение болсо ишке ашат.finally: Кандай болгон күндө да ишке ашат, ресурстарды бошотуу үчүн колдонулат.
try {
// Исключение чыгышы мүмкүн болгон код
int result = 10 / 0; // Мисал: ArithmeticException
} catch (ArithmeticException e) {
// ArithmeticException иштетүү
System.err.println("Бөлүү нөлгө менен катасы: " + e.getMessage());
} catch (Exception e) {
// Башка бардык каталар
System.err.println("Жалпы ката: " + e.getMessage());
} finally {
// Ар дайым ишке ашат
System.out.println("Finally блогу ишке ашты.");
}
Исключенияны өткөрүп берүү:
Мethoд белгилүү бир исключение чыгара алат деп билдириши мүмкүн, throws ключевое слова аркылуу:
public void readFile(String filePath) throws FileNotFoundException, IOException {
// Файлды окуу коду
FileReader fr = new FileReader(filePath);
// Эгер файл табылбаса, FileNotFoundException чыгарыла алат
// Эгер IO катасы болсо, IOException чыгарыла алат
// ...
}
Чакырган метод бул исключениени иштетиши керек же өзү да аны өткөрүп бериши керек.
Өзгөчө исключенияларды түзүү:
Exception же RuntimeException классынан мурас алган өзгөчө класстарды түзсө болот:
public class MyCustomException extends Exception {
public MyCustomException(String message) {
super(message);
}
}
Колдонуу:
public void processData(int value) throws MyCustomException {
if (value < 0) {
throw new MyCustomException("Маани терс болбошу керек");
}
// Маалыматты иштетүү
}
Исключениянын негизги класстары (иерархия):
java.lang.Throwable— бардык каталар жана исключениялар үчүн негизги классjava.lang.Error— олуттуу көйгөйлөр үчүн, программалар тарабынан иштетилбейт (мисалы, OutOfMemoryError)java.lang.Exception— программалар иштеткен каталарjava.lang.RuntimeException—Unchecked ExceptionsNullPointerExceptionArrayIndexOutOfBoundsExceptionArithmeticException- жана башка
- Башка
Exceptionкласстары (Checked Exceptions)IOExceptionFileNotFoundExceptionSQLException- жана башка
Каталар менен иштөө ушул иерархияны түшүнүү, туура түрүн тандоо, try-catch-finally колдонуу жана каталарды логдоо аркылуу ишке ашырылат.