Exception Safety Each function must: Basic Guarantee Resources not leaked, objects still usable Strong Guarantee Program state is as before the call Nothrow The function will never throw