Необработанное исключение может произойти при следующих условиях:
- Ошибка, которая произошла, или исключение, которое было запущено в блоке TRY , CATCH , или FINALLY не были захвачены структурным обработчиком ошибки типа TRY...CATCH...FINALLY .
- Структурный обработчик ошибки не захватил запущенное исключение, которое произошло вне структуры TRY...CATCH...FINALLY .
Вы можете захватить необработанное структурное исключение, используя следующие неинтегрированные обработчики исключений:
- ON ERROR Команда
- Error Event
- Системный Обработчик Visual FoxPro
Для каждого из этих обработчиков ошибок, номером ошибки, возвращенным функцией ERROR( ) является - 2059. Visual FoxPro обеспечивает описание первоначальной ошибки. Вы можете также получить дополнительную информацию о первоначальной ошибке, которая вызвала необработанное исключение из функций SYS(2018) - Параметр Сообщения об ошибке , MESSAGE( ) , и AERROR( ) . Функция SYS(2018) возвращает то же самое значение в третьем элементе массива, возвращаемого функцией AERROR( ) . Функция MESSAGE( ) возвращает то же самое значение во втором элементе массива, возвращаемого AERROR( ) .
Если необработанное исключение было вызвано инструкцией THROW , значением SYS(2018) является 2071, или User Thrown Error .