Výjimka
Výjimka (zkratka pro „výjimečná událost“) je chyba nebo neočekávaná událost, ke které dojde při a program běží. Dojde-li k výjimce, přeruší se tok programu. Pokud program dokáže zpracovat a zpracovat výjimku, může pokračovat v běhu. Pokud není zpracována výjimka, může být program nucen ukončit.
Násobek programovací jazyky podporovat výjimky, i když se používají různými způsoby. Například výjimky jsou nedílnou součástí Jáva jazyk a často řídí tok programu. Java obsahuje Výjimka třída, který má desítky podtříd, jako např TimeoutException, UserException, a IOException. Podtřídy jako IOException obsahovat konkrétnější výjimky jako FileNotFoundException a CharacterCodingException to může být "hozeno", pokud soubor nebyl nalezen nebo Kódování znaků ze dne šňůra není rozpoznán.
Jiné jazyky používají pouze výjimky, aby zachytily základní runtime chyby, například přidělení selhání paměť nebo chyby na úrovni systému. Například a C + + program může hodit bad_alloc výjimku, když nelze přidělit paměť a chyba systému výjimka, když operační systém vytvoří chybu.
Manipulace s výjimkami
Dobře napsaný počítačový program kontroluje výjimky a náležitě s nimi zachází. To znamená vývojka musí zkontrolovat pravděpodobné výjimky a zapsat kód zpracovat je. Pokud program zpracovává výjimky dobře, neočekávané chyby lze detekovat a spravovat bez nich shazovat Program.
Výjimky jsou „vyvolány“, když k nim dojde, a jsou „zachyceny“ nějakým jiným kódem v programu. Mohou být explicitně vyvolány pomocí hod prohlášení nebo implicitně v rámci a vyzkoušet doložka. Níže je uveden příklad „vyzkoušet / chytit“ syntax v Javě. Následující kód se pokusí vydělit nulou, ale hodí Aritmetická výjimka výjimka a vrátí 0 jako výsledek.
1. int a = 11;
2. int b = 0;
3. int výsledek = 0;
4. zkuste {
5. int c = a / b;
6. výsledek = c;
7.} catch (ArithmeticException ex) {
8. výsledek = 0;
9.}
10. návratový výsledek;
Na řádek 5 je vyvolána výjimka (když je 11 vyděleno 0), takže zbytek příkazu try (řádek 6) není proveden. Místo toho je výjimka zachycena na řádku 7 a je vrácen výsledek 0.