Jak odchytit Exception co neni v PHP Exception ale Warning?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tvx
Člen | 5
+
0
-

zacinam s Nette
mam problem s osetrenim vyjimky co neni v PHP vyjimka:

kod:

<?php
try{
	$stream = imap_open($this->mbox, $username, $password);
}catch (Exception $e) {
	// osetreni
}
?>

mimo nette mi PHP hazi Warrning
v Nette mam chybu vyhozenou jako FatalErrorException

jak mam vyjimku odchytit?

Ot@s
Backer | 476
+
0
-

Takto?

try {
} catch (FatalErrorException $e) {
}
tvx
Člen | 5
+
0
-

to jsem samozrejme zkousel ale to nefunguje.

bazo
Člen | 620
+
0
-

tak skus

try {
} catch (\FatalErrorException $e) {
}
Caine
Člen | 216
+
0
-
\Nette\Diagnostics\Debugger::tryError();
$stream = imap_open($this->mbox, $username, $password);
\Nette\Diagnostics\Debugger::catchError($error); //v error je chycenej error/warning
tvx
Člen | 5
+
0
-

Mam starsi verzi Nette, v0.9.7, pro php 5.2.0 bez podpory namespaces
nasel jsem NTools co ma stejnojmennou metodu ale v $error pak mam jen hlasku ‚Couldn't open stream {88.86.109.147:143/tls}INBOX‘

je i tady nejaky reseni nebo jsem v koncich?

newPOPE
Člen | 648
+
0
-

Zrejme pokial v $error nieco je tak tam nastala chyba pokial nie tak by malo byt vsetko v poriadku. Take spravanie by som ocakaval :-).

tvx
Člen | 5
+
0
-

abych se vratil zpet – potrebuji vedet jaky ‚Exception‘ mam odchytavat, neznam jeho jemno a otazka je jak ho zjistim, text chyby je mi tim padem k nicemu…

Caine
Člen | 216
+
0
-

Tak pokavaď začínáš s nette, je hloupost začínat se starou verzí, ne?

Filip Procházka
Moderator | 4668
+
0
-

Špatně, je třeba to uzavřít do podmínky.

use Nette\Diagnostics\Debugger;

Debugger::tryError();
$stream = imap_open($this->mbox, $username, $password);
if (Debugger::catchError($error)) { // nastala chyba
	//v error je chycenej error/warning
}
tvx
Člen | 5
+
0
-

se starou verzi delam proto, ze v ni potrebuju neco hotoveho opravit

HospiLan: viz vyse, v me verzi Nette jeste Debugger neni…

vyada to jen ze ma NTools::tryError() a NTools::getError() vypadajici podobne funkcnosti ale vraci mi to pak v $error text chyby, ja potrebuji znat nazev Exception kterou pottrebuji odchytit.

potrebuji proste jakkoli jinak nez pres @ odchytit chybu a zpracovat jia by nebyla fatal.

Caine
Člen | 216
+
0
-

@hosiplan bude to fungovat i bez podmínky, když chyba nenastane $error bude null..

Filip Procházka
Moderator | 4668
+
0
-

Tak samozřejmě, ale tu podmínku bys musel psát až za to a to je zbytečné.