Da li je moguće obezbediti strogo izvršenje uslova za niz bez pozivanja izuzetka u slučaju neispunjenja?
sobes.tech АИ
Одговор од АИ
U Javi se uslovima obično koriste tvrdnje (assert) ili se bacaju izuzeci kada se uslovi prekrše. Ako želite strogo da proverite uslov za niz bez bacanja izuzetka, možete koristiti metode koje vraćaju boolean, na primer String.matches(), String.isEmpty(), ili da napišete sopstvenu funkciju za proveru.
Primer:
String s = "primer";
boolean jeValidan = s != null && s.matches("[a-z]+\");
if (jeValidan) {
// uslov je ispunjen
} else {
// uslov nije ispunjen, ali izuzetak se ne baca
}
Ako vam je potrebna stroga provera sa zaustavljanjem izvršavanja u slučaju kršenja, ali bez izuzetka, možete koristiti assert (sa uključenom proverom):
assert s != null && s.length() > 0 : "Niz ne sme biti prazan";
Međutim, assert ne baca izuzetak u klasičnom smislu, već generiše AssertionError, koji se može isključiti u runtime-u.
Ukratko: stroga provera uslova bez izuzetka je ili provera sa boolean rezultatom, ili korišćenje assert sa razumevanjem njegovih osobina. Potpuno izbegavanje izuzetaka pri strogoj proveri nije moguće ako je potrebno prekinuti izvršavanje u slučaju kršenja.