На этом шаге мы приведем общий вид конструкции обработки исключений и алгоритм его выполнения.
С помощью этих операторов и обрабатываются исключительные ситуации. Синтаксис объявления этих операторов таков:
try { // здесь находится участок программы, в котором // могут возникнуть исключительные ситуации } [ catch (объявление исключения) { // операторы для обработки возникшего в try-блоке исключения } [ catch (объявление исключения) { // операторы, обрабатывающие другой тип исключения } ] ... ] throw выражение
Оператор throw выбрасывает для последующей обработки возникающее исключение.
Тело оператора catch - это фактически и есть обработчик исключения. Исключение выбрасывается оператором throw, захватывается оператором catch и в его теле обрабатывается.
Объявление исключения в операторе catch определяет тип исключения, которое станет обрабатываться в catch. Этим типом может служить конкретный тип данного, определенный в языке, в т. ч. и класс. Если в объявлении исключения задано многоточие (...), то это означает, что оператор catch станет обрабатывать любой тип возникающего исключения. Такой catch должен быть последним в try-блоке.
По синтаксису вы заметили, что блоков catch может быть более одного: если вы хотите отлавливать конкретные исключения, то сформируйте для каждого из них свой catch, в котором задайте тип обрабатываемого исключения.
Необязательный операнд (выражение) в throw имеет смысл операнда в операторе return: тоже возвращает нечто.
Более детально процесс обработки исключительной ситуации состоит в следующем:
На следующем шаге мы рассмотрим пример использования перечисленных конструкций.