Ваш путь, безусловно, неправильный, потому что вы ловите исключение далеко от того места, где оно было брошено. И ваш глобальный улов может в конечном итоге войти, но не может реагировать.
Представьте себе ситуацию, когда вы пытаетесь создать файл в определенной папке, прежде чем манипулировать им, может случиться так, что вы решите перехватить исключение, если папка не существует, и вы сначала создаете папку, а затем создаете файл в ней. В методе Main слишком поздно, потому что вы ничего не можете сделать, вы можете войти да, но вы не можете создать папку, даже если вы это сделаете, программа все равно не продолжит работу с нужной точки.
Это очень смутное введение в то, зачем делать правильную обработку исключений, просто пример из очень многих ... просто поместите свой пробный улов везде, где это необходимо, и либо отреагируйте на исключение (обработайте их), либо бросьте их (иногда изнутри поймать. иногда пропускаю предложение catch) ... я думаю, вам следует прочитать некоторые статьи по этому поводу.