~justin-fathomdb/nova/justinsb-openstack-api-volumes

« back to all changes in this revision

Viewing changes to vendor/Twisted-10.0.0/doc/historic/2003/pycon/deferex/deferex-complex-failure.py

  • Committer: Jesse Andrews
  • Date: 2010-05-28 06:05:26 UTC
  • Revision ID: git-v1:bf6e6e718cdc7488e2da87b21e258ccc065fe499
initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from deferexex import adder
 
2
 
 
3
class MyExc(Exception):
 
4
    "A sample exception"
 
5
 
 
6
class MyObj:
 
7
 
 
8
    def blowUp(self, result):
 
9
        self.x = result
 
10
        raise MyExc("I can't go on!")
 
11
 
 
12
    def trapIt(self, failure):
 
13
        failure.trap(MyExc)
 
14
        print 'error (', failure.getErrorMessage(), '). x was:', self.x
 
15
        return self.x
 
16
 
 
17
    def onSuccess(self, result):
 
18
        print result + 3
 
19
 
 
20
    def whenTrapped(eslf, result):
 
21
        print 'Finally, result was', result
 
22
 
 
23
    def run(self, o):
 
24
        o.callRemote("add", 1, 2).addCallback(
 
25
            self.blowUp).addCallback(
 
26
            self.onSuccess).addErrback(
 
27
            self.trapIt).addCallback(
 
28
            self.whenTrapped)
 
29
 
 
30
MyObj().run(adder)