Sobes.tech
Junior — Middle

Kan de strikte uitvoering van de voorwaarde voor een tekenreeks worden gegarandeerd zonder het oproepen van een uitzondering in geval van niet-naleving?

sobes.tech AI

Antwoord van AI

In Java worden voorwaarden meestal gecontroleerd met assert-statements of door uitzonderingen te werpen bij overtredingen. Als je een string strikt wilt controleren zonder een uitzondering te werpen, kun je methoden gebruiken die een boolean teruggeven, zoals String.matches(), String.isEmpty(), of je eigen controlefunctie schrijven.

Voorbeeld:

String s = "voorbeeld";
boolean isGeldig = s != null && s.matches("[a-z]+\");
if (isGeldig) {
    // voorwaarde voldaan
} else {
    // voorwaarde niet voldaan, maar geen uitzondering wordt geworpen
}

Als je een strikte controle wilt met het stoppen van de uitvoering bij overtreding, maar zonder uitzondering, kun je assert gebruiken (met ingeschakelde controle):

assert s != null && s.length() > 0 : "De string mag niet leeg zijn";

Echter, assert werpt geen uitzondering in de klassieke zin, maar genereert een AssertionError, die in runtime kan worden uitgeschakeld.

Kort samengevat: strikte controle zonder uitzondering is ofwel een controle met een boolean resultaat, of het gebruik van assert met kennis van de eigenschappen ervan. Het volledig vermijden van uitzonderingen bij strikte controle is niet mogelijk als je de uitvoering wilt stoppen bij overtreding.