Hirdetés

Keresés

Új hozzászólás Aktív témák

  • floatr
    veterán

    Tudni kell, hogy ez nem elegáns megoldás (persze sokszor rákényszerül a kódoló ember az ilyen "csúnyaságokra")
    A java-ban a kivételeket kezelni kell a try-catch-finally blokkal, de dobhatjuk tovább is, amit jelezni kötelező a függvény szignatúrájában. (ezzel tk. továbbadjuk a hívó félnek a kezelés felelősségét) Kivétel ez alól a RuntimeException és annak kiterjesztései. Hogy miért e kivétel? Álljon itt egy idézet a Java Programming Language (SL-275) tankönyvből
    "RuntimeException indicates a design or implementation
    problem
    . That is, it indicates conditions that should never happen
    if the program is operating properly. Because a correctly designed and
    implemented program never issues this type of exception, it is
    usual to leave it unhandled. This results in a message at runtime,
    and ensures that action is taken to correct the problem, rather than
    hiding it where (you think) no one will notice."

    (megsúgom én is használok RuntimeException-ből származtatott saját kivételeket, de a keretrendszerem globálisan lekezeli őket, ellenben megspórolom, hogy állandóan foglalkozzak a függvényeimben a throw-szal)

    Vannak teoretikusok, akik mindenbe belekötnek, amikor megírják a könyveiket. Az ellenőrzött kivételek a saját kódodat erősítik, közvetlen megoldásokkal. A RuntimeException származékok pedig pl. egy konténert címeznek meg valami fatális tévedéssel. Az egyik legjobb példa erre, amikor SOA backended van, és központosított hibakezeléssel akarsz kommunikálni a kliens felé. A nagyobb problémákat egyszerűen nem lehet vagy nem éri meg ellenőrzött kivételekkel visszavezetni, amikor a konténer ezt automatikusan elvégzi egy kis testreszabással.

    De ha már itt tartunk, akkor a generics inkább egy baromi nagy tervezési hiányosság, mint ez :)

  • WonderCSabo
    félisten

    Tudni kell, hogy ez nem elegáns megoldás (persze sokszor rákényszerül a kódoló ember az ilyen "csúnyaságokra")
    A java-ban a kivételeket kezelni kell a try-catch-finally blokkal, de dobhatjuk tovább is, amit jelezni kötelező a függvény szignatúrájában. (ezzel tk. továbbadjuk a hívó félnek a kezelés felelősségét) Kivétel ez alól a RuntimeException és annak kiterjesztései. Hogy miért e kivétel? Álljon itt egy idézet a Java Programming Language (SL-275) tankönyvből
    "RuntimeException indicates a design or implementation
    problem
    . That is, it indicates conditions that should never happen
    if the program is operating properly. Because a correctly designed and
    implemented program never issues this type of exception, it is
    usual to leave it unhandled. This results in a message at runtime,
    and ensures that action is taken to correct the problem, rather than
    hiding it where (you think) no one will notice."

    (megsúgom én is használok RuntimeException-ből származtatott saját kivételeket, de a keretrendszerem globálisan lekezeli őket, ellenben megspórolom, hogy állandóan foglalkozzak a függvényeimben a throw-szal)

    Igen, ezzel tisztában vagyok. ;)

    Szerk.: Sőt, kb. az idézeted le is írtam az előző hszem uccsó bekezdésében, csak eléggé összefoglalva..

    Mondjuk azért a tankönyv első mondata azért eléggé erős.

Új hozzászólás Aktív témák