except-1.mm

来自「用于进行gcc测试」· MM 代码 · 共 72 行

MM
72
字号
/* { dg-do run } *//* 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 <stdio.h>#include <stdlib.h>@interface Object {  Class isa;  }+ alloc;- init;@end// ObjectiveC class header@interface ObjCclass : Object {}-(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 + -
显示快捷键?