NSExceptionHandler
NSExceptionHandler
класс предоставляет средства для контроля и отладки исключительных условий в программах Objective C. Это работает путем установки специального обработчика необработанных исключений через NSSetUncaughtExceptionHandler
функция. Следовательно, для использования служб NSExceptionHandler
, Вы не должны устанавливать своего собственного обработчика необработанных исключений.
Для использования этих служб Вы устанавливаете немного маски в одиночном элементе NSExceptionHandler
экземпляр и, дополнительно, делегат. Константы, включающие битовую маску, указывают тип исключения, которое будет контролироваться и поведение NSExceptionHandler
объект (или, просто, обработчик исключений). Делегата просят утвердить журналирование и обработку каждого контролируемого NSException
объект с помощью NSExceptionHandlerDelegate
протокол.
Константы для конфигурирования поведения обработчика исключений могут быть категоризированы несколькими способами:
Неперехваченные исключения по сравнению с перехваченными исключительными ситуациями — или, более точно, исключения, которые были бы пойманы (например, обработчиком верхнего уровня)
Тип исключительной ситуации или причина: системные исключения (такие как недопустимые доступы памяти), ошибки периода выполнения Objective C (такие как сообщения отправил к освобожденным объектам), и другие исключения
Поведение обработчика исключений: журналирование исключения (включая отслеживание стека) к консоли, обработка исключения и приостановка реализации программы так отладчик может быть присоединено
Путем дескрипторы обработчика исключений исключение зависят от типа исключения; обработчик исключений преобразовывает системные исключения и ошибки периода выполнения в NSException
объекты с отслеживанием стека, встроенным в их userInfo
словарь; для всех других неперехваченных исключений это завершает поток, на котором они происходят. Константы раньше конфигурировали NSExceptionHandler
объект описан в Журналировании и Обработке Константы Зависания системы и Константы.
defaults
система командной строки также позволяет Вам устанавливать значения, соответствующие enum
константы раньше конфигурировали обработчик исключений; посмотрите Управление Ответом Программы на Исключения для подробных данных.
Оператор импорта
Swift
import ExceptionHandling
Objective C
@import ExceptionHandling;
Доступность
OS X v10.0
-
Возвращает одиночный элемент
NSExceptionHandler
экземпляр.Объявление
Swift
class func defaultExceptionHandler() -> NSExceptionHandler!
Objective C
+ (NSExceptionHandler *)defaultExceptionHandler
Оператор импорта
Objective C
@import ExceptionHandling;
Swift
import ExceptionHandling
Доступность
Доступный в OS X v10.0 и позже.
-
Возвраты немного маски, представляющей типы исключений, контролируемых получателем и его обработкой и журналированием поведения.
Объявление
Swift
func exceptionHandlingMask() -> Int
Objective C
- (NSUInteger)exceptionHandlingMask
Возвращаемое значение
Немного маски, составленной из одной или более констант, указывающих типы исключений, контролировало и обрабатываются ли они или регистрируются (или оба). Посмотрите
Logging and Handling Constants
для получения информации о константах.Оператор импорта
Objective C
@import ExceptionHandling;
Swift
import ExceptionHandling
Доступность
Доступный в OS X v10.0 и позже.
-
Возвраты немного маски, представляющей типы исключений, которые остановят выполнение для отладки.
Возвращаемое значение
Немного маски сочинило одной или более констант, указывающих типы исключений, которые остановят выполнение для отладки. Посмотрите
System Hang Constants
для получения информации о константах.Оператор импорта
Objective C
@import ExceptionHandling;
Swift
import ExceptionHandling
Доступность
Доступный в OS X v10.0 и позже.
-
Устанавливает битовую маску констант, указывающих типы исключений, контролируемых получателем и его обработкой и журналированием поведения.
Объявление
Swift
func setExceptionHandlingMask(_
aMask
: Int)Objective C
- (void)setExceptionHandlingMask:(NSUInteger)
aMask
Параметры
aMask
Немного маски, составленной из одной или более констант, указывающих типы исключений, контролировало и обрабатываются ли они или регистрируются (или оба). Вы указываете многократные константы путем выполнения работы битового «ИЛИ». Посмотрите
Logging and Handling Constants
для получения информации о константах.Оператор импорта
Objective C
@import ExceptionHandling;
Swift
import ExceptionHandling
Доступность
Доступный в OS X v10.0 и позже.
-
Устанавливает битовую маску констант, указывающих типы исключений, которые остановят выполнение для отладки.
Объявление
Swift
func setExceptionHangingMask(_
aMask
: Int)Objective C
- (void)setExceptionHangingMask:(NSUInteger)
aMask
Параметры
aMask
Немного маски сочинило одной или более констант, указывающих типы исключений, которые остановят выполнение для отладки. Вы указываете многократные константы путем выполнения работы битового «ИЛИ». Посмотрите
System Hang Constants
для получения информации о константах.Оператор импорта
Objective C
@import ExceptionHandling;
Swift
import ExceptionHandling
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает делегата
NSExceptionHandler
объект.Объявление
Swift
func delegate() -> AnyObject!
Objective C
- (id)delegate
Оператор импорта
Objective C
@import ExceptionHandling;
Swift
import ExceptionHandling
Доступность
Доступный в OS X v10.0 и позже.
-
Устанавливает делегата
NSExceptionHandler
объект.Объявление
Swift
func setDelegate(_
anObject
: AnyObject!)Objective C
- (void)setDelegate:(id)
anObject
Параметры
anObject
Объект получить сообщения делегации, описанные в Журналировании и обработке исключений
Оператор импорта
Objective C
@import ExceptionHandling;
Swift
import ExceptionHandling
Доступность
Доступный в OS X v10.0 и позже.
-
Используйте один или больше следующих констант в параметре
setExceptionHandlingMask:
указать типы исключений, которые должен контролировать обработчик исключений и должен ли он обработать или зарегистрировать их.Объявление
Swift
var NSLogUncaughtExceptionMask: Int { get } var NSHandleUncaughtExceptionMask: Int { get } var NSLogUncaughtSystemExceptionMask: Int { get } var NSHandleUncaughtSystemExceptionMask: Int { get } var NSLogUncaughtRuntimeErrorMask: Int { get } var NSHandleUncaughtRuntimeErrorMask: Int { get } var NSLogTopLevelExceptionMask: Int { get } var NSHandleTopLevelExceptionMask: Int { get } var NSLogOtherExceptionMask: Int { get } var NSHandleOtherExceptionMask: Int { get }
Objective C
enum { NSLogUncaughtExceptionMask = 1 << 0, NSHandleUncaughtExceptionMask = 1 << 1, NSLogUncaughtSystemExceptionMask = 1 << 2, NSHandleUncaughtSystemExceptionMask = 1 << 3, NSLogUncaughtRuntimeErrorMask = 1 << 4, NSHandleUncaughtRuntimeErrorMask = 1 << 5, NSLogTopLevelExceptionMask = 1 << 6, NSHandleTopLevelExceptionMask = 1 << 7, NSLogOtherExceptionMask = 1 << 8, NSHandleOtherExceptionMask = 1 << 9 };
Константы
-
NSLogUncaughtExceptionMask
NSLogUncaughtExceptionMask
Обработчик исключений регистрирует неперехваченные исключения.
Доступный в OS X v10.0 и позже.
-
NSHandleUncaughtExceptionMask
NSHandleUncaughtExceptionMask
Обработчик исключений обрабатывает неперехваченные исключения путем завершения потока, в котором они происходят.
Доступный в OS X v10.0 и позже.
-
NSLogUncaughtSystemExceptionMask
NSLogUncaughtSystemExceptionMask
Обработчик исключений регистрирует непойманные системные исключения.
Доступный в OS X v10.0 и позже.
-
NSHandleUncaughtSystemExceptionMask
NSHandleUncaughtSystemExceptionMask
Обработчик исключений обрабатывает непойманные системные исключения путем преобразования их в
NSException
объекты, содержащие отслеживание стека.Доступный в OS X v10.0 и позже.
-
NSLogUncaughtRuntimeErrorMask
NSLogUncaughtRuntimeErrorMask
Обработчик исключений регистрирует непойманные ошибки периода выполнения.
Доступный в OS X v10.0 и позже.
-
NSHandleUncaughtRuntimeErrorMask
NSHandleUncaughtRuntimeErrorMask
Обработчик исключений обрабатывает непойманные ошибки периода выполнения путем преобразования их в
NSException
объекты, содержащие отслеживание стека.Доступный в OS X v10.0 и позже.
-
NSLogTopLevelExceptionMask
NSLogTopLevelExceptionMask
Обработчик исключений регистрирует исключения, которые были бы пойманы обработчиком верхнего уровня.
Доступный в OS X v10.0 и позже.
-
NSHandleTopLevelExceptionMask
NSHandleTopLevelExceptionMask
Обработчик исключений обрабатывает исключения, пойманные обработчиком верхнего уровня путем преобразования их в
NSException
объекты, содержащие отслеживание стека.Доступный в OS X v10.0 и позже.
-
NSLogOtherExceptionMask
NSLogOtherExceptionMask
Обработчик исключений регистрирует исключения, пойманные обработчиками ниже, чем обработчик верхнего уровня.
Доступный в OS X v10.0 и позже.
-
NSHandleOtherExceptionMask
NSHandleOtherExceptionMask
Обработчик исключений обрабатывает исключения, пойманные обработчиками ниже, чем обработчик верхнего уровня путем преобразования их в
NSException
объекты, содержащие отслеживание стека.Доступный в OS X v10.0 и позже.
Обсуждение
Когда домены обработки исключений вкладываются,
NSLogTopLevelExceptionMask
иNSHandleTopLevelExceptionMask
соглашение за исключениями, которые добрались бы до лучших двух уровней обработчиков исключений. В основном потоке приложения Какао обработчик верхнего уровня является глобальной переменнойNSApplication
экземпляр. -
-
Используйте один или больше следующих констант в параметре
setExceptionHangingMask:
для указания типов исключений, заставляющих исключение останавливать выполнение, так, отладчик может быть присоединен.Объявление
Swift
var NSHangOnUncaughtExceptionMask: Int { get } var NSHangOnUncaughtSystemExceptionMask: Int { get } var NSHangOnUncaughtRuntimeErrorMask: Int { get } var NSHangOnTopLevelExceptionMask: Int { get } var NSHangOnOtherExceptionMask: Int { get }
Objective C
enum { NSHangOnUncaughtExceptionMask = 1 << 0, NSHangOnUncaughtSystemExceptionMask = 1 << 1, NSHangOnUncaughtRuntimeErrorMask = 1 << 2, NSHangOnTopLevelExceptionMask = 1 << 3, NSHangOnOtherExceptionMask = 1 << 4 };
Константы
-
NSHangOnUncaughtExceptionMask
NSHangOnUncaughtExceptionMask
Обработчик исключений приостанавливает выполнение, когда это обнаруживает неперехваченное исключение (кроме системного исключения или ошибки периода выполнения).
Доступный в OS X v10.0 и позже.
-
NSHangOnUncaughtSystemExceptionMask
NSHangOnUncaughtSystemExceptionMask
Обработчик исключений приостанавливает выполнение, когда это обнаруживает непойманное системное исключение.
Доступный в OS X v10.0 и позже.
-
NSHangOnUncaughtRuntimeErrorMask
NSHangOnUncaughtRuntimeErrorMask
Обработчик исключений приостанавливает выполнение, когда это обнаруживает непойманную ошибку периода выполнения.
Доступный в OS X v10.0 и позже.
-
NSHangOnTopLevelExceptionMask
NSHangOnTopLevelExceptionMask
Обработчик исключений приостанавливает выполнение, когда это обнаруживает исключение, которое было бы обработано обработчиком верхнего уровня.
Доступный в OS X v10.0 и позже.
-
NSHangOnOtherExceptionMask
NSHangOnOtherExceptionMask
Обработчик исключений приостанавливает выполнение, когда это обнаруживает исключение, которое было бы обработано объектом кроме обработчика верхнего уровня.
Доступный в OS X v10.0 и позже.
Обсуждение
Когда домены обработки исключений вкладываются,
NSHangOnTopLevelExceptionMask
соглашения за исключениями, которые добрались бы до лучших двух уровней обработчиков исключений. В основном потоке приложения Какао обработчик верхнего уровня является глобальной переменнойNSApplication
экземпляр. -
-
Следующий
#define
константы являются удобствами для указания полных наборов обработки исключенийenum
константы.Объявление
Objective C
NSHangOnEveryExceptionMask NSLogAndHandleEveryExceptionMask
Константы
-
NSHangOnEveryExceptionMask
NSHangOnEveryExceptionMask
Объединения через битовое «ИЛИ» все константы, перечисленные в
System Hang Constants
.Доступный в OS X v10.0 и позже.
-
NSLogAndHandleEveryExceptionMask
NSLogAndHandleEveryExceptionMask
Объединения через битовое «ИЛИ» все константы, перечисленные в
Logging and Handling Constants
.Доступный в OS X v10.0 и позже.
-
-
Две из следующих глобальных строковых констант идентифицируют исключения, сгенерированные платформой для ошибок периода выполнения Objective C и системных исключений, таких как недопустимые доступы памяти. Другая константа используется в качестве ключа для доступа к отслеживанию стека в
userInfo
словарьNSException
объект, когда требуется.Объявление
Swift
var NSUncaughtSystemExceptionException: NSString! var NSUncaughtRuntimeErrorException: NSString! var NSStackTraceKey: NSString!
Objective C
EXCEPTIONHANDLING_EXPORT NSString *NSUncaughtSystemExceptionException; EXCEPTIONHANDLING_EXPORT NSString *NSUncaughtRuntimeErrorException; EXCEPTIONHANDLING_EXPORT NSString *NSStackTraceKey;
Константы
-
NSUncaughtSystemExceptionException
NSUncaughtSystemExceptionException
Идентифицирует непойманное системное исключение.
Доступный в OS X v10.0 и позже.
-
NSUncaughtRuntimeErrorException
NSUncaughtRuntimeErrorException
Идентифицирует ошибку периода выполнения Objective C.
Доступный в OS X v10.0 и позже.
-
NSStackTraceKey
NSStackTraceKey
Ключ для выборки отслеживания стека (
NSString
объект) вuserInfo
словарьNSException
объект передал в один из методов делегата, описанных в Журналировании и обработке исключений.Доступный в OS X v10.0 и позже.
-