exception handler
how to write .gitignore