Miért vavr Try konténer fogások Eldobható de nem kivétel?

szavazat
0

Nem vagyok szakértője a java-típusú rendszer és a kivételkezelés. De találtam, hogy mi csak fogni kivételek, de nem Eldobható években.

Itt a link: Különbség a Eldobható és Kivétel try catch

A Vavr könyvtár találtam ezt a forráskód:

public interface Try<T> extends Value<T>, Serializable {
long serialVersionUID = 1L;

static <T> Try<T> of(CheckedFunction0<? extends T> supplier) {
    Objects.requireNonNull(supplier, supplier is null);

    try {
        return new Try.Success(supplier.apply());
    } catch (Throwable var2) {
        return new Try.Failure(var2);
    }
}

Tettem volna bármilyen kérdés a jövőben, ha fogom használni ezt a tartályt? Will i hiányzik néhány kritikus kivételek, amelyek előfordulhatnak végrehajtása során „A” funkció?

A kérdést 02/12/2019 23:56
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
2

Throwableegy õse Exception, vagyis catch (Throwable var)fogások kivételek is. Ezért a kódot vavr helyes - ha van olyan Throwabledobott lesz csomagolva egy Try.Failure.

Válaszolt 03/12/2019 00:00
a forrás felhasználó

szavazat
1

Megjegyzés mi a válasz a linkelt poszt mondja:

Ön általában nem csinálni, kivéve talán a legmagasabb „elkapni” szinten egy szál, ahol szeretne jelentkezni, vagy más módon kezelni, mindent, ami elromolhat .

Kiemelés az enyém.

Ez valószínűleg a szándék itt. Ez egy trywrapper hivatott kezelni mindent , és hagyja, hogy a felhasználó úgy dönt, hogy mit akarnak foglalkozni, és hogyan. Úgy tűnik, ők fognak a konstrukció, mint a Scala Try, hogy segítségével a kivételek kezelése anélkül, hogy kézzel elkapta őket. Ahhoz, hogy ez a munka, és következetes, mindent kell kezelni ugyanúgy, vagy ha volna néhány kivételtől kelljen kifogni, és mások, amelyeket kezelni ezt az osztályt kíván.

Ami

Will i hiányzik néhány kritikus kivételek, amelyek előfordulhatnak végrehajtása során „A” funkció?

Nem fog hiányozni nekik. Ők vissza csomagolva egy Try.Failure, és akkor tudja kezelni őket, akkor, miután megkapta a hibát.

Válaszolt 03/12/2019 00:01
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more