Sobes.tech
Junior — Middle
87

Қате болған жағдайда әдіс тексерілетін немесе тексерілмейтін қателікті тастай ма?

Сұралған компаниялар
ОТП БанкОТП Банк

AI-дан жауап

sobes.tech AI

Тексерілетін (checked) және тексерілмейтін (unchecked) қателіктер арасындағы таңдау контекстке және API дизайнына байланысты.

  • Тексерілетін қателіктер (Exception мұрагерлері, RuntimeException емес) міндетті түрде өңделуі немесе әдіс сигнатурасында (throws) жариялануы керек. Оларды қате күтулі және шақырушы кодпен өңделуі мүмкін болған жағдайда пайдаланады (мысалы, IOException).

  • Тексерілмейтін қателіктер (RuntimeException мұрагерлері) әдетте бағдарламалық қателіктерді көрсетеді, оларды міндетті түрде ашық өңдеу қажет емес (мысалы, NullPointerException).

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

Мысал:

public void readFile(String path) throws IOException { // тексерілетін қате
    // файлды оқу
}

public void setAge(int age) {
    if (age < 0) {
        throw new IllegalArgumentException("Жас теріс бола алмайды"); // тексерілмейтін
    }
    this.age = age;
}