Exceptions Seperate error detection from handling Any object can be exception First catch type matched is used (including inheritance) void func() throw (e1, e2) void func() throw () void func() Constructors can throw exception Copy constructors and destructors shouldn't