Sobes.tech
Junior — Middle

Biztosítható-e a feltétel szigorú végrehajtása egy karakterláncra anélkül, hogy kivételt hívnánk, ha nem teljesül?

sobes.tech MI

Válasz az MI-től

Java-ban a feltételek ellenőrzésére általában az assert utasítást használják, vagy kivételt dobunk, ha a feltételek nem teljesülnek. Ha szigorúan ellenőrizni szeretnéd egy string feltételét anélkül, hogy kivételt dobna, akkor olyan módszereket használhatsz, amelyek boolean értéket adnak vissza, például a String.matches(), String.isEmpty(), vagy írj saját ellenőrző függvényt.

Példa:

String s = "példa";
boolean érvényes = s != null && s.matches("[a-z]+\");
if (érvényes) {
    // feltétel teljesült
} else {
    // feltétel nem teljesült, de nem dobunk kivételt
}

Ha szigorú ellenőrzésre van szükség, ami leállítja a végrehajtást, de nem dob kivételt, akkor használhatod az assert-et (aktivált ellenőrzéssel):

assert s != null && s.length() > 0 : "A string nem lehet üres";

Azonban az assert nem dob klasszikus értelemben kivételt, hanem egy AssertionError-t generál, amit futásidőben kikapcsolhatsz.

Összefoglalva: szigorú feltétel ellenőrzése kivétel nélkül vagy boolean eredménnyel, vagy az assert használatával lehetséges, de az assert sajátosságait ismerni kell. Teljesen kivédeni a kivételeket nem lehet, ha a végrehajtást meg akarod szakítani a feltétel megsértése esetén.