https://bigdatainsights.online/best-practices-for-handling-exceptions-in-c/