Riješeno: java pokušaj uhvatiti integer.parseint

pokušajte uhvatiti integer.parseint U svijetu programiranja, bitno je napisati kod koji je efikasan i sposoban da se nosi sa neočekivanim situacijama. Jedna takva neočekivana situacija nastaje kada pokušamo raščlaniti cjelobrojnu vrijednost iz stringa, a niz sadrži nevažeće znakove. U ovom članku ćemo razgovarati o probaj-hvataj mehanizam i njegovu upotrebu sa Integer.parseInt metoda u Javi.

Kada je u pitanju pretvaranje stringa u cijeli broj, Java nam pruža mogućnost Integer.parseInt metoda. Međutim, ova metoda može baciti a NumberFormatException ako niz sadrži znakove koji nisu važeći za cjelobrojni tip podataka. Ovdje dolazi u obzir mehanizam pokušaja hvatanja, koji nam omogućava da graciozno rukujemo izuzetkom i pružimo odgovarajuće rješenje za problem.

Korištenje try-catch sa Integer.parseInt

Mehanizam try-catch omogućava nam da izvršimo blok koda i uhvatimo sve izuzetke koji se mogu pojaviti tokom njegovog izvršavanja. Umotavanjem našeg koda Integer.parseInt unutar bloka try-catch, možemo uhvatiti bilo koji NumberFormatException koji bi mogao biti izbačen, što nam omogućava da preduzmemo odgovarajuću akciju ovisno o izuzetku.

Evo objašnjenja korak po korak kako koristiti try-catch sa Integer.parseInt:

public class TryCatchExample {
    public static void main(String[] args) {
        String numberString = "123a";
        int result;

        try {
            result = Integer.parseInt(numberString);
        } catch (NumberFormatException e) {
            System.out.println("Invalid number format: " + e.getMessage());
            result = 0; // default value in case of error
        }

        System.out.println("Result: " + result);
    }
}

1. Deklarirajte varijable `numberString` i `result`, gdje `numberString` sadrži string koji želimo da konvertujemo, a `result` će pohraniti raščlanjenu cjelobrojnu vrijednost.
2. Okružite poziv `Integer.parseInt` unutar bloka try.
3. Ako a NumberFormatException se baca dok se poziva `Integer.parseInt`, uhvati izuzetak u bloku catch.
4. U bloku catch, odštampajte poruku o grešci sa detaljima izuzetka i postavite podrazumevanu vrednost na varijablu `rezultat`.
5. Na kraju, ispišite vrijednost `rezultata`.

Razumijevanje NumberFormatException

A NumberFormatException je potklasa RuntimeExceptiona i izbacuje se kada se pokuša pretvoriti niz u jedan od numeričkih tipova ako string nema odgovarajući format. U slucaju da Integer.parseInt, izuzetak će biti izbačen ako niz sadrži znakove koji nisu valjane cjelobrojne vrijednosti (npr. slova, specijalni znakovi).

  • Važeća cjelobrojna vrijednost treba da sadrži samo cifre (0-9) i neobavezni vodeći znak (+ ili -).
  • Znakovi razmaka nisu dozvoljeni u nizu za raščlanjivanje.
  • Ako string počinje s važećim cjelobrojnim formatom, ali kasnije ima nevažeće znakove, metoda će i dalje izbaciti NumberFormatException.

Alternativne metode raščlanjivanja

Osim korištenja try-catch sa Integer.parseInt, Java također pruža alternativne načine raščlanjivanja niza na cijeli broj, kao što je metoda `Integer.valueOf` i Java 8 `OptionalInt` sa Prenosi.

// Using Integer.valueOf
public static Integer tryParse(String value) {
    try {
        return Integer.valueOf(value);
    } catch (NumberFormatException e) {
        return null;
    }
}

// Using Java 8 OptionalInt and Stream
public static OptionalInt tryParseJava8(String value) {
    return value.chars()
        .allMatch(Character::isDigit)
        ? OptionalInt.of(Integer.parseInt(value))
        : OptionalInt.empty();
}

U zaključku, rukovanje izuzecima i pružanje odgovarajućih rješenja za probleme je bitno u programiranju. Mehanizam try-catch za rukovanje izuzećem NumberFormatException koji je izbacio Integer.parseInt je jedno od takvih rješenja, osiguravajući da naš kod ostane robustan i pouzdan suočen s neočekivanim ulaznim vrijednostima.

Slični postovi:

Ostavite komentar