Bacite iznimku na izboru u Javi 8

1. Uvod

U ovom uputstvu pokazat ćemo kako izbaciti prilagođenu iznimku kada Neobvezno jas prazan.

Ako želite ući dublje u Neobvezno, pogledajte naš cjeloviti vodič ovdje.

2. Po izboru.iliElseThrow

Jednostavno rečeno, ako je vrijednost prisutna, onda je prisutan() bi se vratio pravi, i zove dobiti() vratit će ovu vrijednost. Inače, baca NoSuchElementException.

Postoji i metoda orElseThrow (dobavljač iznimke) koji nam omogućuje pružanje prilagođene instance iznimke. Ova će metoda vratiti vrijednost samo ako je prisutna. U suprotnom, izbacit će iznimku koju je stvorio ponuđeni dobavljač.

3. Na djelu

Zamisli to imamo metodu koja vraća poništavajući rezultat:

javni String findNameById (ID niza) {return id == null? null: "primjer-imena"; }

Sad ćemo nazvati naše findNameById (ID niza) metodu dvaput i zamotajte rezultat s Neobvezno pomoću ofNullable (vrijednost T) metoda.

Neobvezno pruža statičku tvorničku metodu za stvaranje novih primjeraka. Ova metoda se naziva ofNullable (vrijednost T). Tada možemo nazvati iliElseThrow.

Ponašanje možemo provjeriti izvođenjem ovog testa:

@Test public void whenIdIsNull_thenExceptionIsThrown () {assertThrows (InvalidArgumentException.class, () -> Neobvezno .ofNullable (personRepository.findNameById (null)) .orElseThrow (InvalidArgument); }

Prema našoj provedbi, findNameById će se vratiti null. Dakle, novo NevažećeArgumentException bit će bačen iz iliElseThrow metoda.

Ovu metodu možemo nazvati argumentom koji nije null. Tada nećemo dobiti InvalidArgumentException:

@Test public void whenIdIsNonNull_thenNoExceptionIsThrown () {assertAll (() -> Neobvezno .ofNullable (personRepository.findNameById ("id")) .orElseThrow (RuntimeException :: new)); } 

4. Zaključak

U ovom kratkom članku razgovarali smo o tome kako izbaciti iznimku s Jave 8 Neobvezno.

Kao i uvijek, izvorni kod stavljamo na naš GitHub.


$config[zx-auto] not found$config[zx-overlay] not found