V ASP 3.0 přibyl nový objekt ASPError, který umožňuje jednodušší ladění aplikací. Tento objekt se používá pro zjištění detailnějšího popisu poslední chyby, která nastala při zpracovávání ASP stránky.
Instanci objektu ASPError získáme voláním metody Server.GetLastError.
Atribut ASPCode obsahuje kód chyby.
Hodnotu atributu ASPCode generuje IIS a pro většinu chyb ve skriptu není nastaven.
Následující tabulka obsahuje přehled nejběžnějších chybových kódů.
| Chybový kód | Chybová zpráva | Chybová zpráva | Doplňující informace |
|---|---|---|---|
| ASP 0100 | Out of memory | Nedostatek paměti | Nelze vyhradit potřebné množství paměti. |
| ASP 0101 | Unexpected error | Nečekaná chyba | Funkce vrátila jméno_výjimky. |
| ASP 0102 | Expecting string input | Očekává se řetězec | |
| ASP 0103 | Expecting numeric input | Očekává se číslo | |
| ASP 0104 | Operation not allowed | Nedovolená operace | |
| ASP 0105 | Index out of range | Index mimo rozsah | Index pole je mimo rozsah. |
| ASP 0106 | Type Mismatch | Nevhodný typ | Byl použit datový typ, který nemůže být zpracován. |
| ASP 0107 | Stack Overflow | Přetečení zásobníku | Množství zpracovávaných dat přesáhlo povolenou mez. |
| ASP 0115 | Unexpected error | Nečekaná chyba | V externím objektu došlo k závažné chybě jméno_výjimky. Ve skriptu nelze pokračovat. |
| ASP 0177 | Server.CreateObject Failed | Chyba při vytváření objektu | Chybný parametr ProgID. |
| ASP 0190 | Unexpected error | Nečekaná chyba | Došlo k závažné chybě při rušení externího objektu. |
| ASP 0191 | Unexpected error | Nečekaná chyba | Došlo k závažné chybě v metodě OnStartPage externího objektu. |
| ASP 0192 | Unexpected error | Nečekaná chyba | Došlo k závažné chybě v metodě OnEndPage externího objektu. |
| ASP 0193 | OnStartPage Failed | Chyba v metodě OnStartPage | Došlo k závažné chybě v metodě OnStartPage externího objektu. |
| ASP 0194 | OnEndPage Failed | Chyba v metodě OnEndPage | Došlo k závažné chybě v metodě OnEndPage externího objektu. |
| ASP 0240 | Script Engine Exception | Výjimka v překladači skriptu | Došlo k výjimce jméno_výjimky v objektu jméno_objektu volaném z jméno_objektu. |
| ASP 0241 | CreateObject Exception | Výjimka při vytváření objektu | Metoda CreateObject objektu jméno_objektu způsobila výjimku jméno_výjimky. |
| ASP 0242 | Query OnStartPage Interface Exception | Výjimka v rozhraní metody OnStartPage | Metoda OnStartPage nebo OnEndPage volaného objektu jméno_objektu způsobila výjimku jméno_výjimky. |
V případě, že se jedná o chybu související s ASP, obsahuje atribut ASPDescription podrobný popis této chyby.
Hodnota tohoto atributu je generována preprocesorem ASP a opět je pro většinu ASP chyb prázdná.
Obsahuje informaci o původu chyby, tzn. zda ji vygenerovalo ASP, překladač skriptovacího jazyka nebo externí objekt.
Hodnota tohoto atributu je v případě výskytu chyby vždy nastavena.
Atribut Column obsahuje pozici znaku v řádce zdrojového souboru, na níž se vyskytla chyba.
Hodnota atributu je nastavena jen v případech, kdy je tato informace v okamžiku vzniku chyby známa. To se týká především syntaktických chyb nalezených při kompilaci.
V případě runtime chyb je obvykle nastavena pouze hodnota atributů File a Line, hodnota atributu Column bývá nastavena na hodnotu -1.
Tento atribut obsahuje stručný popis chyby. V případě výskytu chyby je vždy nastaven.
Tento atribut obsahuje název souboru, který byl zpracováván, když došlo k chybě.
Tento atribut obsahuje číslo řádky souboru, kde byla detekována chyba.
Atribut Number obsahuje standardní COM chybový kód. V případě, že na stránce nedošlo k chybě, obsahuje tento atribut hodnotu 0.
Všechny runtime chyby v ASP nastavují hodnotu tohoto atributu na hexadecimální hodnotu 0x800A0000 zvýšenou o standardní kód chyby používaný skriptovacím strojem. Například chyba VBScriptu Subscript out of range má kód 9, atribut Number bude v případě této chyby nastaven na hodnotu 0x800A0009 (desítkově -2146828279).
V případě, že se jedná o syntaktickou chybu, obsahuje atribut Source zdrojový text řádky, na níž došlo k chybě.
Pokud si chceme udělat vlastní chybovou stránku, nevypisujeme hodnotu tohoto atributu přímo, ale nejprve ji převedeme metodou Server.HTMLEncode, aby se správně zobrazili i znaky, které mají v HTML svůj speciální význam.