Autor Zpráva
ondra256
Profil
Mám 2 funkce

class Zkusebni{

function A(){
try{
$this->B();
}catch{Exception $e){
print "vyjimka";
}
}

function B(){
// neco dela a kdy se nepodari chci aby vyhodilo vyjimku, ktera by se dala odchytavat ve funkci A
}

}


víte někdo jak dodělat funkci B? Umožňuje to vůbec jazyk php?
juriad
Profil
throw new Exception();
Mike8748
Profil
function B(){
 // neco udelej
 
 if ($nepovedlo_se) throw new Exception("neco se nam nepovedlo");  // pokud se to nepovede vyhodit vyjimku

}
vyjimka bude zachycena catch blokem ve funkci A()
ondra256
Profil
juriad, juriad:
když to tak udělám tk to vyhazuje výjimku ve funkci B, ale já chci aby to vyhodilo tu výjimku ven, tak abych ji odchytaval až ve funkci A.


v javě by ta funkce B vypadala asi takto

function B() throws Exception{
 // neco udelej
 
 if ($nepovedlo_se) throw new Exception("neco se nam nepovedlo");  // pokud se to nepovede vyhodit vyjimku
 
}
joe
Profil
Tak místo print "vyjimka"; napíšeš throw $e;, čímž pošleš vyjímku dál.
juriad
Profil
Vždyť ano, vyhodí ji ven a ty ji zachytíš ve funkci A.
V PHP je to stejně jako v javě, jen se nedeklarují vyhazované výjimky v hlavičce funkce. Jako by byly všechny výjimky RuntimeException.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: