Виключення - об'єкти класу Exception або його нащадків, у яких передається інформація про помилки.
Для обробки виняткових ситуацій використовується конструкція try/catсh, що має наступний синтаксис:
try {
програмний код, при виконанні якого можливі помилки
}
catch(тип мінлива) {
програмний код для обробки помилки зазначеного типу
}
Можна перехоплювати не одне, а кілька типів винятків, якщо використовувати кілька блоків catch. В цьому випадку більш специфічні винятки повинні передувати більш загальним винятків, оскільки середа виконання переглядає обробники винятків щодо порядку. Перехопивши виняток, можна отримати більш детальну інформацію про помилку. Властивість Message містить короткий опис помилки; властивість TargetSite представляє об'єкт, в якому виникла помилка (використовуючи цей об'єкт, можна отримати ім'я методу, ім'я класу та назва збірки, в якій виникла помилка); властивість InnerException возвращает наступний об'єкт в ланцюжку винятків.
У тому випадку, коли в програмному коді обробки помилки немає необхідності в отриманні детальної інформації про помилці, застосовується спрощена конструкція try/catсh:
try {
програмний код, при виконанні якого можливі помилки
}
catch {
програмний код для обробки помилки зазначеного типу
}
Також можна використовувати конструкцію try/catсh/finally, що має наступний синтаксис:
try {
програмний код, при виконанні якого можливі помилки
}
catch(тип мінлива) {
програмний код для обробки помилки зазначеного типу
}
finally {
програмний код, що виконується поза залежності від помилки
}
У якості типу перехватываемого виключення необхідно використовувати клас Exception або його нащадків. Для викидання (порушення) виключення використовується оператор throw, що має наступний синтаксис:
throw виключення;
У найпростішому випадку для викидання загального виключення використовується наступний синтаксис:
throw new Exception("повідомлення про помилку");
Якщо необхідно повторно порушити виняток, перехоплене в блоці catch, слід скористатися оператором throw без параметрів.