https://medium.com/@Marioskif/python-daily-tips-7-how-to-tame-your-errors-with-custom-exception-handling-64baeb4d10bf