Ošetření chyb v ASP za běhu aplikace
Jistě se vám již povedla napsat stránka, která vám během testování fungovala zcela bez problémů. Po zpřístupnění stránky najednou zjišťujete, že spoustě uživatelů z nejrůznějších důvodů nechodí. Většinou se o těchto problémech dozvíte až po stížnostech na nefunkčnost stránky. Příčinou bývá většinou nesprávné zadání dat uživatelem. V dnešním článku si ukážeme, jak podobným případům předcházet, či spíše, jak se o chybě dozvědět bez přičinění uživatele.
Občas se stává, že se na provedené ASP stránce se objeví chybové hlášení:
|
Toto hlášení dost často zničí celý design stránky či ji nezobrazí vůbec. Naštěstí v ASP máme možnost potlačit vypisování chybových hlášení pomocí On Error Resume Next.
Možnosti ošetření chyb
Možností jak ošetřit chyby v naší webové aplikaci je několik a můžeme je v podstatě zařadit do tří úrovní:
- potlačit vypisovaní chybových hlášení
- regulované vypisování chybových hlášení
- aktivní upozorňování administrátora
První možnost je zcela jednoduchá a primitivní. Na počátku ASP kódu uvedeme kód On Error Resume Next a v případě výskytu chyby běží ASP jako by se nic nestalo – tedy až no to, že došlo k chybě, která často pak následně vyvolá řetěz dalších chyb. Protože nejsou vypisována žádná chybová hlášení, je to jako kdyby žádná chyba nebyla a to je stav mnohem horší, než kdyby se zobrazila chybová hláška.
Druhá možnost je naznačená v následujícím kódu a umožňuje nám definovat hlášení při výskytu chyby.
|
Příkazem Err.Clear „vyčistíme“ objekt Error. Pokud nám stránka proběhne bez chyby je Err.Number = 0. V opačném případě můžeme pomocí metod Number a Description vypsat danou chybu nebo vykonat nějakou další akci podle potřeby.
Druhý způsob ošetřování chyb na stránce nám už poskytuje celkem pěkné možnosti, jak upravit standardní chybová hlášení, ale neřeší nejpodstatnější věc a tou je informování administrátora webové aplikace, že nastala chyba. Možností máme několik, navrhuji tři:
- ukládání chybových hlášení do textových souborů
- poslání emailu administrátorovi
- ukládání chybových hlášení do databáze
V dnešním článku uvedu řešení prvního a druhého způsobu a řešení třetího si ponechám do dalšího pokračování.
První způsob může vypadat následovně (předpokládejme, že tento soubor se jmenuje „test.asp“):
|
V příkladu je využita práce s textovými soubory, která byla popsána v článku Práce se soubory pomocí ASP II. a proto ji zde nebudu dále rozvádět.
Druhý způsob může vypadat následovně (předpokládejme, že tento soubor se jmenuje „test.asp“):
|
V druhém způsobu řešení je použit objekt CDONTS.NewMail, který se používá k posílání libovolných e-mailových zásilek pomocí ASP. Tento objekt nebyl doposud na Intervalu popsán, ale mohu vám slíbit, že článek na toto téma vyjde v dohledné době.
Na závěr si vám dovolím předložit tento příklad:
|
Pozorný čtenář si jistě zeptá, proč je zde uveden kód, který obsahuje několik chyb a navíc nemá téměř žádný smysl. Na tomto kódu jsem vám chtěl názorně ukázat, jak se projeví ošetření chybových stavů. Výsledek příkladu je pod čarou.
<% on error resume next dim chyba set chyba=server.CreateObject("bla bla bla") if err.number<>0 then Response.Write(„Chyba číslo: „&err.number) Response.Write(„
„) Response.Write(„Popis Chyby: „&err.Description) Response.Write(„
„) Response.Write(„Zdroj chyby: „&err.source) Response.Write(„
„) err.clear end if Response.Write(„
„) datum=cdate(„blbost“) if err.number<>0 then Response.Write(„Chyba číslo: „&err.number) Response.Write(„
„) Response.Write(„Popis Chyby: „&err.Description) Response.Write(„
„) Response.Write(„Zdroj chyby: „&err.source) Response.Write(„
„) err.clear end if Response.Write(„
„) vysledek=10/0 if err.number<>0 then Response.Write(„Chyba číslo: „&err.number) Response.Write(„
„) Response.Write(„Popis Chyby: „&err.Description) Response.Write(„
„) Response.Write(„Zdroj chyby: „&err.source) Response.Write(„
„) err.clear end if %>
A co nás čeká příště? – Naučíme se využít Response.Buffer a Response.Clear při ošetřování chybových stavů. Naučíte se ošetřovat chyby ve skriptech na straně klienta. Dozvíte se, jak zapisovat chybové stavy do databáze a také vám představím novinku v IIS 5.0. – Centrální ošetření chyb. Takže máte se na co těšit.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Globální výpadek IT systémů: Může za to jediná aktualizace
19. července 2024 -
inPage AI: Revoluční nástroj pro tvorbu webů
3. července 2024 -
Optimalizace a zlepšení výkonu kódu: tipy a triky
14. srpna 2023
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024