https://medium.com/@malikfiaz78600786/error-handling-and-exceptions-a-complete-guide-to-reliability-in-programming-86c2d9edde1f