iPhone C++/Objective-C exceptions
iPhone C++/Objective-C exceptions
有谁知道在 iPhone 应用程序的 XCode 中启用C++异常处理的后果?默认情况下,它似乎处于禁用状态。
C++ 和 Objective C 异常是否相同,还是C++异常只能由C++代码捕获,反之亦然?
谢谢
有谁知道在 iPhone 应用程序的 XCode 中启用C++异常处理的后果?
这是C++异常处理的正常选择。如果您正在使用C++库,则可能需要启用此功能。
您不得假设异常将跨图像边界清晰地传播。也就是说,您不能假设它被定义为投掷基础框架并在另一侧接住。IOW,在MyApp中抛出MyLib->通过Foundation->catch可能会导致未定义的行为。因此,您必须假设您需要在MyLib中捕获这些内容。
与OS X不同,iPhone的C++和ObjC例外不是使用"零成本例外"实现的。零成本异常(有利于执行速度而不是大小)未使用,因为展开表的大小以及编译器支持。
启用例外将需要一些速度和一些大小 - 我预计iOS上的大多数程序不到10%。
最终,需求应确定是否应启用异常,并且它们将引入一些执行和大小开销。除非您使用的是非常专业的C++库,否则您应该假定需要启用它们。但是,支持该功能。
C++ 和 Objective C 异常是否相同,还是C++异常只能由C++代码捕获,反之亦然?
在 64 位 OS X 和 iOS 环境中,可以使用任一处理程序捕获C++和 ObjC 异常。在 32 位 OS X 中,它们使用不同的例外模型。因此,"catch all"表达式(用任一语言编写)可以在 iOS 和 64 位 OS X 中捕获 C++ 和 ObjC 异常,但在 32 位 OS X 中则不能。
- Exceptions on iostreams
- 如果您属于"we don't use exceptions"阵营,那么您如何使用标准库?
- OpenCV fitLine exceptions
- BOOST_NO_EXCEPTIONS是否可以保证与-fno -exceptions的兼容性
- GCC arm-none-eabi (Codesourcery) and C++ Exceptions
- iPhone C++/Objective-C exceptions
- "cin.exceptions"和"exception"在这里是什么意思
- Do exceptions/errors在C++中也设置了错误号
- Linux3/GCC46:"-fnon-call-exceptions",哪些信号是陷阱指令?
- Android CMake build默认添加no-exceptions和no-rtti
- 节点.js带有 GYP "exceptions"的附加组件
- xsubpp c++ exceptions
- std::push_heap and std::pop_heap with MoveConstructible obje
- Android NDK / Exceptions?
- exceptions advantages over Enums