#1 2. 3. 2010 10:20

medhi
Člen
Registrovaný: 31. 3. 2009
Příspěvky: 66

Neodchytávají se výjimky

Ahoj, mám aplikaci na lokalu, kde Laděnka správně vyhazuje výjimky, když zadám třeba špatnou URL. Zapnu potom v boostrapu toto:

$application->errorPresenter = 'Error';
$application->catchExceptions = TRUE;

A aplikace od té doby už hází jenom ten strohý

Server Error

The server encountered an internal error and was unable to complete your request. Please try again later.
Nette Framework

Error presenter mám podle skeletonu.

Je to nějaká blbá chybka, protože vedle mám aplikaci, kde to odchytávání funguje výborně. Jako by byl problém s Error presenterem, ale ten se zdá v pořádku, zkoušel jsem ho vyměnit i za ten z fungující aplikace.

Vše běží na localu, není to problém, který by se vyskytl pouze na ostrém serveru.

Offline

 

#2 2. 3. 2010 10:42

Honza Kuchař
Moderator
Místo: Brno
Registrovaný: 12. 8. 2007
Příspěvky: 1285
Web

Re: Neodchytávají se výjimky

To je v pořádku. http://github.com/…or/500.phtml

Offline

 

#3 2. 3. 2010 10:48

medhi
Člen
Registrovaný: 31. 3. 2009
Příspěvky: 66

Re: Neodchytávají se výjimky

Možná jsem zapomněl zmínit, že mám použit ještě nějaký hodně starý skeleton, kde tato šablona není, a že ta výjimka je BadRequestException #404, tak netuším proč by měla naskakovat chyba 500. Navíc i kdyby ta šablona 500 naskočila, měla by načíst @layout.phtml, aby to vypadalo, ale nic takového se neděje.

Offline

 

#4 2. 3. 2010 11:07

medhi
Člen
Registrovaný: 31. 3. 2009
Příspěvky: 66

Re: Neodchytávají se výjimky

Ještě snad pomůže, že když si nechám chyby logovat, najdu tam tuto výjimku:

ApplicationException

An error occured while executing error-presenter

Offline

 

#5 2. 3. 2010 11:16

Ondřej Mirtes
Moderator
Místo: Praha
Registrovaný: 8. 1. 2009
Příspěvky: 1357
Web

Re: Neodchytávají se výjimky

Zkus ErrorPresenter podědit od Presenteru (ne od tvého BasePresenteru), jestli se to zlepší. Může tam nastat nějaká situace, která způsobí chybu i v ErrorPresenteru a aplikace by se tak dostala do nekonečné smyčky.

Offline

 

#6 2. 3. 2010 12:16

medhi
Člen
Registrovaný: 31. 3. 2009
Příspěvky: 66

Re: Neodchytávají se výjimky

Ondřej Mirtes: Zlepšilo se to, už to vypisuje @layout a pak chybu, protože tam zase chybí určité proměnné z BasePresenteru (logicky). Ale teď zjistit, co je v BasePresenteru špatně, že od něj nemůže ErrorPresneter dědit.

Offline

 

#7 2. 3. 2010 21:25

medhi
Člen
Registrovaný: 31. 3. 2009
Příspěvky: 66

Re: Neodchytávají se výjimky

Tak už jsem asi přišel na to kde je zakopán pes. Výjimka prý neumí přenášet persistentní parametry a jeden takový já v error presnteru potřebuji, jinak to hodí další výjimku a odtud to zacyklení.

Jde nějak získat v Error Presenteru pers. parametr? Někde jsem tu četl, že si ho mám uložit do session, ale není to trochu nečistý postup?

Díky

Offline

 

#8 3. 3. 2010 11:17

Majkl578
Moderator
Místo: Pardubický kraj
Registrovaný: 2. 5. 2009
Příspěvky: 395

Re: Neodchytávají se výjimky

Řešením problému by měla být úprava Application::run().

Nahradit toto:

$request = new PresenterRequest(
$this->errorPresenter,
PresenterRequest::FORWARD,
array('exception' => $e)######
);

tímto:

$request = new PresenterRequest(
$this->errorPresenter,
PresenterRequest::FORWARD,
array_merge($request->getParams(), array('exception' => $e))######
);

(Issue na Githubu)

Editoval Majkl578 (3. 3. 2010 12:07)


Debian SID (2.6.35-rc5–686), Apache 2.2.15, PHP 5.3.2, MySQL 5.1.48; Nette 1.0-dev pro PHP 5.3


There are 10 types of people in this world. Those who understand binary and those who don't.

Offline

 

#9 11. 7. 2010 12:17

Honza Kuchař
Moderator
Místo: Brno
Registrovaný: 12. 8. 2007
Příspěvky: 1285
Web

Re: Neodchytávají se výjimky

Proč toto není v distribuci? Nezpůsobuje to přeci žádnou zpětnou nekompatibilitu?! (oživení)

Offline

 

#10 13. 7. 2010 15:26

BigCharlie
Člen
Registrovaný: 13. 11. 2008
Příspěvky: 140

Re: Neodchytávají se výjimky

To je ve hvězdách, a to už slaví tahle chyba včetně bugfixu své první výročí

Offline

 

#11 13. 7. 2010 16:44

Majkl578
Moderator
Místo: Pardubický kraj
Registrovaný: 2. 5. 2009
Příspěvky: 395

Re: Neodchytávají se výjimky

Honza Kuchař napsal(a):

Proč toto není v distribuci? Nezpůsobuje to přeci žádnou zpětnou nekompatibilitu?! (oživení)

Asi jako dalších X věcí (drobností). :)


Debian SID (2.6.35-rc5–686), Apache 2.2.15, PHP 5.3.2, MySQL 5.1.48; Nette 1.0-dev pro PHP 5.3


There are 10 types of people in this world. Those who understand binary and those who don't.

Offline

 

Zápatí