exception handling - first draft