File: director_exception_runme.m

package info (click to toggle)
swig1.3 1.3.36-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 27,060 kB
  • ctags: 13,774
  • sloc: cpp: 40,816; ansic: 27,565; python: 9,069; java: 6,432; makefile: 5,065; yacc: 4,916; cs: 4,551; sh: 4,071; ruby: 3,760; perl: 3,562; lisp: 1,993; tcl: 1,266; php: 1,026; ml: 708
file content (57 lines) | stat: -rw-r--r-- 699 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
director_exception

MyFoo=@() subclass(Foo(),
		   'ping',@(self) raise(NotImplementedError("MyFoo::ping() EXCEPTION")));

MyFoo2=@() subclass(Foo(),
		    'ping',@(self) true);
		   
ok = 0;

a = MyFoo();
b = launder(a);

try
  b.pong();
catch
  [etype,e]=raised();
  if (etype=="NotImplementedError")
    ok=1;
  endif
end_try_catch

if (!ok)
  error
endif

ok = 0;

a = MyFoo2();
b = launder(a);

try
  b.pong();
catch
  ok = 1;
end_try_catch

if (!ok)
  error
endif


try
  raise(Exception2());
catch
  if (!strcmp(raised,"Exception2"))
    rethrow(lasterr);
  endif
end_try_catch

try
  raise(Exception1());
catch
  if (!strcmp(raised,"Exception1"))
    rethrow(lasterr);
  endif
end_try_catch