Criar suas próprias exceções é bom para ser mais assertivo no problema que está acontecendo. Isso é bom para o usuário final e para seus colegas ou equipe que precisam corrigir o problema notificado pelo cliente. É comum nessas exceções você gravar num arquivo ou banco. Ai imagina que você fez uma exceção personalizada chamada de Erro1234, você pode verificar seu software no dia e ir no relatório e buscar por Erro1234 e você rapidamente verifica se em algum momento do dia seu programa lançou essa exceção.
O try catch bem feito é bom para não deixar o sistema encerrar "do nada".
Eu não vi o curso de php e o que estão falando, mas se você fazer por exemplo, um Try Catch para consultar no banco de dados e vier nulo a sua consulta.. não necessariamente isso é uma exceção então o IF e ELSE resolveria nesse fluxo. Mas você perder a conexão do banco de dados, ter um timeout de conexão isso seria, como você trata essa situação usando IF e ELSE?
Espero que tenha te ajudado.