Во-первых, данная ошибка - это проблема
валидации. И в этом конкретном примере никакие ошибки РНР перехватывать не надо. А надо проверить значение (и существование ) $_GET['val1'] и $_GET['val2'] и вернуть клиенту соответствующие ошибки.
В целом же ошибки РНР перехватываются функциями set_exception_handler() для исключений, set_error_handler() для нефатальных ошибок и register_shutdown_function() для фатальных. Пример можно посмотреть здесь
https://phpdelusions.net/articles/error_reporting
Важно при этом помнить, что
сам текст ошибки клиенту не показывается, а доводится только сам факт ошибки, "Что-то пошло не так, зайдите позже".