https://zoheirsoftware.com/blog/unhandled-exceptions-csharp-training