1、Starting with version 3.3 of the GNU Compiler Collection (GCC), make sure the -fobj-exceptions flag is turned on;
raise对应throw
The exception macros are a legacy mechanism that should only be used when binary compatibility with versions of the operating system prior to OS X v10.3 is a concern.
You can use
goto
or
return
to exit an exception handling domain.
NS_DURING, NS_HANDLER
You cannot use
goto
or
return
to exit an exception handling domain—errors will result.
3、
The uncaught exception handler always causes the program to exit but may perform some task before this happens.
You can set a custom function as the uncaught exception handler using the NSSetUncaughtExceptionHandler function;
you can obtain the current uncaught exception handler with the NSGetUncaughtExceptionHandler function.
4、
The generic exception names are string constants defined in
NSException.h
and documented in
Foundation Constants Reference
. These constants include the following:
NSGenericException
NSRangeException
NSInvalidArgumentException
NSInternalInconsistencyException
NSObjectInaccessibleException
NSObjectNotAvailableException
NSDestinationInvalidException
NSPortTimeoutException
NSInvalidSendPortException
NSInvalidReceivePortException
NSPortSendException
NSPortReceiveException
5、
64-bit processes that enter a zero-cost
@try
block incur no performance penalty. This is unlike the mechanism for 32-bit processes, which calls
setjmp()
and performs additional “bookkeeping”. However, throwing an exception is much more expensive in 64-bit executables.
转载于:https://my.oschina.net/dake/blog/196716