1. Try/except. ****************************************************************

% cat oops.py

def oops():
    raise IndexError

def doomed():
    try:
        oops()
    except IndexError:
        print 'wylapano wyjatek IndexError!'
    else:
        print 'nie wylapano wyjatku...'

if __name__ == '__main__': doomed()

% python oops.py
wylapano wyjatek IndexError!


2. Listy wyjtkw. ************************************************************

% cat oops.py
MyError = 'hello'

def oops():
    raise MyError, 'world'

def doomed():
    try:
        oops()
    except IndexError:
        print 'wylapano wyjatek IndexError!'
    except MyError, data:
        print 'wylapano wyjatek:', MyError, data
    else:
        print 'nie wylapano wyjatku...'

if __name__ == '__main__':
    doomed()

% python oops.py
wylapano wyjatek: hello world


3. Obsuga bdw. ************************************************************

% cat safe2.py
import sys, traceback
def safe(entry, *args):
    try:
        apply(entry, args)          # wyapuje wszystkie else
    except:
        traceback.print_exc()
        print 'Wylapano', sys.exc_type, sys.exc_value

import oops
safe(oops.oops)

% python safe2.py
Traceback (nermost last):
  File "safe2.py", line 5, in safe
    apply(entry, args)             # wyapuje wszystkie else
  File "oops.py", line 4, in oops
    raise Myerror, 'world'
hello: world
Wylapano hello world
