https://medium.com/@Marioskif/javascript-daily-tips-66-the-best-practices-for-javascripts-error-handling-4d125a788eb3