Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Došlo k chybě ve skriptu

srigi . aura:47
23. 1. 2012 6:53 Nový

Riesenie try/catch v JS

celé vlákno

Prave vcera som pozeral prednasku Nicholasa Zakasa - Scalable JavaScript Application Architecture, kde sa aj okrajovo dotkol "handlovania" chyb. Totiz napr. v PHP frameworkoch toto uz za nas vyriesili autori frameworkov, napr. tak ze do tzv. dispatch loop umiestnili ten velky try/catch blok.

JS aplikacie su ale riadene diametralne odlisne, akcie od uzivatela malokedy idu cez nejaky centralny FrontController. Skor sa v nich stretneme s tzv. PubSub technikou spracovania poziadaviek. A prave v Zachovej prednaske mozno najst drobny snippet ako to mozno riesit. Nejaky Core pri instancovani modulu prejde vsetky metody modulu a obali ich try/catch blokom, aby ich Core zachytil.

Ale priznam sa, ze aj window.onerror nevypada na zlu techniku, otazkou je ako je tato technika prenositelna, ked window nie je nativny objekt a u Node.js s nou asi zatial nepochodime.

Oldisy3 aura:78
23. 1. 2012 7:37 Nový

Tak jako obcas kritizuji

celé vlákno

Tak dnes musim pochvalit. Tohle se mi opravdu hodi.

Ajax
Ajax (neregistrovaný) ---.faster.cz
23. 1. 2012 8:48 Nový

Dekuji

celé vlákno

Perfetkni rada, diky!

Gappa
Gappa (neregistrovaný) ---.grepnet.cz
23. 1. 2012 11:39 Nový

Firefox vs onerror a problém s cizími chybami

celé vlákno

"Podpora v prohlížečích je silně nevyvážená: IE tuto konstrukci podporuje od verze 5.5 (!), FF od verze 6, Chrome od verze 13, Safari od 5.1 a Opera od verze 11.60. Nelze to tedy nazvat jednoznačně „novinkou“."

Neřekl bych, že Firefox podporuje až od verze 6, protože v logu generovaném právě pomocí onerror mám několik z Firefox/3.6.23 a na StackOverflow to podle komentářů funguje i v 3.0.x :)

Info o chybě posílám pomocí "new Image" způsobu, ale to je celkem už detail. Spíš mám problém s tím, že tam je strašné množství balastu a chyb, za které (předpokládám) nemůže web.

Jedná se např. o chyby XUL rozhraní ve Firefoxu, "error loading script" od zablokovaného načítání ga.js nebo fb skriptů a pak také "různé divnoty" při přesměrování z výsledků vyhledávání googlu - že nelze načíst script z např. takového url: http://d3lvr7yuk4uaui.cloudfront.net/items/domains/f/{nazev_domeny}.js

Každopádně je to užitečná věc, kterou by lidé měli znát :)

nothrem
nothrem (neregistrovaný) 2001:718:1803:----:----:----:----:----
23. 1. 2012 16:35 Nový

Re: Firefox vs onerror a problém s cizími chybami

celé vlákno

Tohle je právě problém odchytávání "všech chyb". Moderní prohlížeče bez výjimky podporují rozšíření, které běží na JS ve stejném scopu.
Pak musíte rozlišit, co je skutečně vaše chyba a co je chyba pluginu (např. zmíněná chyba s "{nazev_domeny}.js" je chyba pluginu Babylon Pro translator, který jede metodou pokus-omyl).
Pozor také na to, že nejnovější verze prohlížečů vracejí 'záhadnou' chybu "Scripr error. file: index.html, line: 0", která v překladu znamená "chyba je ve skriptu, ke kterému kvůli bezpečnosti nemáte práva" (a tudíž ji můžete ignorovat).

BTW nechápu proč je článek tak dlouhý, když stačilo napsat "Chyby chytejte ve window.onerror a pak si je pošlete přes AJAX nebo IMAGE na server." a přidat dva příklady.

Gappa
Gappa (neregistrovaný) ---.pnet.sferianet.cz
23. 1. 2012 17:55 Nový

Re: Firefox vs onerror a problém s cizími chybami

celé vlákno

Díky za doplnění a info o té chybě :)

Čtenář
Čtenář (neregistrovaný) ---.121.broadband12.iol.cz
23. 1. 2012 14:22 Nový

Úsměvné

celé vlákno

Po kliknutí na odkaz v RSS čtečce mě server přivítal hláškou: „An internal server error occurred. Please try again later.“

Martin Malý aura:93
23. 1. 2012 15:21 Nový

Re: Úsměvné

celé vlákno

To je kvůli zvýšení věrohodnosti ;)

Tom B aura:79
23. 1. 2012 17:35 Nový

Re: Úsměvné

celé vlákno

Mně se to zas stalo, když jsem si chtěl zobrazit diskuzi (očividně už tu ale jsem :3) --- pobavilo XD.

Audiod aura:45
23. 1. 2012 17:36 Nový

Rozumné oznámení chyby

celé vlákno

Co se týče první části článku, pojednávající o srozumitelném vyjádření chyby, tak to je problém, se kterým se často potýkají i velké firmy. A je až s podivem, kam až je možné zajít.

Nedávno jsem měl sen. Přál jsem si úspěšně se přihlásit do služby Windows Live v jedné hře, abych si mohl zahrát online. Nic víc, nic míň. Prostředí Windows Live dostupné přímo ve hře mi při pokusu o připojení sdělovalo Nelze se přihlásit. Fajn. Přidány výjimky do firewallu. Nelze se přihlásit. Po další marné snaze jsem spustil desktopový klient, který mi nejen sdělil, že se nelze přihlásit, ale zároveň vypsal i několikaciferné číslo chyby, které však nebylo nikde na webu k nalezení. Fajn. Desktopový klient měl ještě jednu výbornou funkci - vygeneroval odkaz s názvem Vyřešte problém kliknutím sem. Klikám, spouští se IE9, načítání stránky končí se slovy Nelze načíst rámce stránky. Fajn. Přihlásím se do Windows Live přes webové rozhraní - bez problému. Nikde ani náznak nějakého problému nebo jeho řešení. Na stránce je mj. zobrazen banner s nabídkou na rozšíření stávajícího účtu o nové XBox Live funkce. Sice XBox nemám, chci si zahrát na PC, ale ze zoufalosti nabídku odkliknu a světe div se, každé přihlášení je odteď úspěšné. Takže suma sumárum tři hodiny zkoušení, jestli tohle nebo tohle není náhodou ten problém, a to jenom díky tomu, že žádná ze tří aplikací postavených nad touto službou mi nebyla schopná sdělit, z jakého důvodu přihlášení neuspělo. Asi jsem toho chtěl v roce 2012 moc.

windowsupdate
windowsupdate (neregistrovaný) ---.net.upcbroadband.cz
25. 1. 2012 9:19 Nový

Re: Rozumné oznámení chyby

celé vlákno

Já jsem měl noční můry z chyb při windows updatech na WinXP na windowsupdate­.microsoft.com. "Aktualizace se nezdařila, chyba: 0x8...". Na webu bylo k nalezení o takovýchto chybách prd, přičemž ruční instalace aktualizace pak většinou v pohodě (navíc v případě chyby to v GUI napsalo chybu textově, a ne jen debilním číslem s odkazem na web, kde ovšem nebylo vysvětlení vůbec žádný - a v logu služby taky prd a vořech k identifikaci) - ovšem to je řešení zcela nepraktický a pomalý, ale naštěstí to vždy řešily nějaký prográmky, co celou službu a navázaný procesy na ní "restartovaly" do základního stavu, a pak to prošlo.

Tom
Tom (neregistrovaný) 212.96.172.---
24. 1. 2012 7:54 Nový

Super článek

celé vlákno

Díky za článek.
O tom, že existuje událost onerror jsem neměl tušení.
Tom

Ivan Novakov aura:45
1. 2. 2012 9:43 Nový

Chyba v onerror callbacku

celé vlákno

A co se stane, pokud nastane chyba v onerror callbacku? :)

Zasílat nově přidané příspěvky e-mailem