Sobes.tech
Junior — Middle

Je možné zabezpečiť prísne splnenie podmienky pre reťazec bez vyvolania výnimky v prípade nesplnenia?

sobes.tech AI

Odpoveď od AI

V Jave sa običajno za preverjanje pogojev uporabljajo izjave (assert) ali pa sprožijo izjeme, kadar so pogoji kršeni. Če želite strogo preveriti pogoj za niz brez sprožitve izjeme, lahko uporabite metode, ki vrnejo boolean, na primer String.matches(), String.isEmpty(), ali napišete svojo funkcijo za preverjanje.

Primer:

String s = "primer";
boolean jeVeljaven = s != null && s.matches("[a-z]+\");
if (jeVeljaven) {
    // pogoj je izpolnjen
} else {
    // pogoj ni izpolnjen, vendar izjava ni sprožena
}

Če potrebujete strogo preverjanje z ustavitvijo izvajanja ob kršenju, vendar brez izjeme, lahko uporabite assert (z aktivnim preverjanjem):

assert s != null && s.length() > 0 : "Niz ne sme biti prazen";

Vendar assert ne sproži izjeme v klasičnem pomenu, ampak generira AssertionError, ki ga je mogoče izključiti v času izvajanja.

Na kratko: stroga preveritev pogoja brez izjeme je bodisi preverjanje z boolean rezultatom, bodisi uporaba assert z razumevanjem njegovih lastnosti. Popolnoma izogniti se izjavam pri strogi preverbi ni mogoče, če je treba prekiniti izvajanje ob kršenju.