Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: Virheenkäsittelyn päivitys die-funktiosta parempaan

juhauta [13.04.2016 09:50:16]

#

Voiko isossa php-ohjelmassa jotenkin parantaa die() -funktiota tai määrittää sen uudestaan. Mikä olisi "oikea tapa" toimia ?

Vanhassa koodissa on useita die kutsuja ja niissä on ongelma että käyttäjät näkee virheen, mutta se ei tallennu mihinkään että ylläpitäjä näkisi myös
olis myös kiva että lisäksi tallentuisi tai tulisi mailiin tieto myös että mikä urli oli, mikä kellonaika, ip jne..

timoh [13.04.2016 11:13:01]

#

Ei taida onnistua dien kanssa mitenkään helposti, sillä die on language construct (noita et pysty ohittamaan nimiavaruudessa).

Search & replace saattaisi ola yllättävän näppärä.

Metabolix [13.04.2016 17:27:59]

#

Järkevä ratkaisu olisi yleensäkin tehdä virheenkäsittely poikkeuksilla (eli vaihtaa die-rivit throw new OmanSoftanException -riveiksi), jolloin yllättäville poikkeuksille voisi rekisteröidä käsittelijän funktiolla set_exception_handler ja osan poikkeuksista voisi ehkä käsitellä jo käyttöpaikalla try–catch-rakenteella.

Jos ohjelmassa jo käytetään poikkeuksia jotenkin väärin ja die-rivien muuttaminen poikkeuksiksi ei sen takia toimisi suoraan, hyvä vaihtoehto on trigger_error parametrilla E_USER_ERROR, jolloin käsittelijän voi asettaa funktiolla set_error_handler.

Molemmissa tapauksissa käsittelijästä voi tulostaa nätin virhesivun ja tallentaa varsinaisen virheen kaikkine debuggaustietoineen lokiin.

juhauta [21.04.2016 09:18:41]

#

Kiitsos vastauksista.
Täytyypi siis korvata tuo die vaikka omadie-funktiokutsuilla ja sinne koittaa googlettaa joku logitusjuttu joka kertoisi vähän tilanteesta tarkempiakin tietoja.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta