except-1.mm
来自「Mac OS X 10.4.9 for x86 Source Code gcc」· MM 代码 · 共 67 行
MM
67 行
/* APPLE LOCAL file mainline 2005-10-20 4308031 *//* { dg-do run { target "*-*-darwin*" } } *//* { dg-options "-framework Foundation" } *//* This tests that exceptions work. It used to fail because objc_msgSend was marked with DECL_NOTHROW. If you include objc/Object.h, the problem goes away, because that file includes objc/objc-runtime.h which explicitly prototypes objc_msgSend without 'nothrow'. */#include <Foundation/Foundation.h>#include <stdio.h>#include <stdlib.h>// ObjectiveC class header@interface ObjCclass : NSObject {}-(void)method1;-(void)method2;@end// C++ class headerclass CPPclass {public: void function1();};// Mainint main(int argc, char *argv[]){ ObjCclass * foo = [[ObjCclass alloc] init]; [foo method1]; exit (0);}// ObjectiveC implementation@implementation ObjCclass-(void) method1{ try { [self method2]; } catch(...) { return; }}-(void) method2{ CPPclass foo; foo.function1();}@end// C++ implementationvoid CPPclass::function1(){ throw (1); /* Shouldn't be here because we threw. */ abort ();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?