Sobes.tech
Middle

Кадом усулҳо барои коркарди истисноҳои санҷидашуда мавҷуданд?

sobes.tech AI

Ҷавоб аз AI

  • try-catch блоки истифода баред: имкон медиҳад, ки истисноро ба даст оред ва онро коркард кунед, ки ба анҷоми нобаҳаммади барнома пешгирӣ мекунад.
  • Эълон кунед, ки метод метавонад истисноро партояд, бо истифода аз калиди throws дар имзои метода: ин масъулиятро ба коди даъваткунанда мегузорад.
  • Як истиснои санҷидашударо дар як ғайрисанҷидаи он пӯшонед: имкон медиҳад, ки истисноро бе коркарти ошкоро гузаронед, аммо метавонад мушкилии воқеиро пинҳон кунад.

Маслиҳат барои истифодаи try-catch:

// Маслиҳат барои истифодаи try-catch барои коркарди истиснои санҷидашударо
try {
    // Код, ки метавонад истиснои санҷидашударо партояд (масалан, IOException)
    FileReader file = new FileReader("my_file.txt");
    // Кор бо файл...
} catch (IOException e) {
    // Коркарди IOException
    e.printStackTrace(); // Намоиши стекаи даъватҳо барои ташхис
    System.err.println("Хатогӣ дар кор бо файл: " + e.getMessage());
}

Маслиҳат барои истифодаи throws:

// Маслиҳат барои истифодаи `throws` дар имзои метода
public void readFile(String fileName) throws IOException {
    FileReader file = new FileReader(fileName);
    // Кор бо файл...
}

// Код, ки онро даъват мекунад, бояд IOException-ро коркард кунад ё дар имзои худ эълон кунад
public void processFile(String filePath) {
    try {
        readFile(filePath);
    } catch (IOException e) {
        System.err.println("Хатогӣ дар хондани файл: " + e.getMessage());
    }
}

Маслиҳат барои пӯшондани истиснои санҷидашударо дар ғайрисанҷида:

// Маслиҳат барои пӯшондани истиснои санҷидашударо дар ғайрисанҷида
public void unsafeOperation() {
    try {
        // Код, ки метавонад истиснои санҷидашударо партояд
        throw new IOException("Масалан, IOException")
    } catch (IOException e) {
        // Табдил додани истиснои санҷидашударо ба ғайрисанҷида
        throw new RuntimeException("Хатои дар амалиёт ошкор шуд", e);
    }
}