Если вы тупо не знаете, какие бывают типы исключений, то это легко исправить, посмотрев в
документации.
Там написано, что объекты исключений имеют иерархическую структуру, и самым общим предком является интерфейс
Throwable.
Отдельно следует отметить, что за использование try catch чтобы тупо написать "Получена ошибка" надо бить по рукам. Так
никогда не надо делать. Это глупо и бессмысленно. РНР и сам прекрасно выведет и $e->getFile(), и $e->getLine(), и даже $e->getMessage(), и помогать ему в этом не надо.
Исключение надо ловить только тогда, когда есть определенный сценарий обработки. Например, в случае, если test() выполнилась с ошибкой, то вызвать test2().
Но главное - внутри блока catch ничего не выводить пользователю.
Общением с пользователем должны заниматься только специально предназначенные для этого блоки программы. А не любая строчка, которой вдруг захотелось это сделать.
Поэтому
в данном конкретном случае ваша задача еще больше упрощается - не надо ловить вообще никакое исключение.