#include <objc/Object.h> | |
#include <stdio.h> | |
#include <stdlib.h> | |
static int made_try = 0; | |
int | |
thrower_try_body() | |
{ | |
made_try++; | |
return (0); | |
} | |
static int made_finally = 0; | |
int | |
finally_body() | |
{ | |
made_finally++; | |
return (0); | |
} | |
int | |
thrower() | |
{ | |
@try | |
{ | |
thrower_try_body(); | |
@throw [Object new]; | |
} | |
@finally | |
{ | |
finally_body(); | |
} | |
return 0; | |
} | |
static int made_catch = 0; | |
int | |
main(int ac, char *av[]) | |
{ | |
@try | |
{ | |
thrower(); | |
} | |
@catch (id exc) | |
{ | |
made_catch++; | |
[exc free]; | |
} | |
if (made_try != 1) | |
abort (); | |
if (made_finally != 1) | |
abort (); | |
if (made_catch != 1) | |
abort (); | |
return 0; | |
} |