This depends on the exceptions you want to catch.

Example for 5xx HTTP exceptions:

    namespace Drupal\mymodule\EventSubscriber;
    
    use Drupal\Core\EventSubscriber\DefaultExceptionHtmlSubscriber;
    use Symfony\Component\HttpKernel\Event\ExceptionEvent;
    use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
    
    /**
     * Exception subscriber for handling 5xx exceptions
     */
    class MymoduleExceptionSubscriber extends DefaultExceptionHtmlSubscriber {
    
      protected static function getPriority() {
        return 129;
      }
    
      protected function getHandledFormats() {
        return ['html'];
      }
    
      /**
       * Handles a 5xx error for HTML.
       *
       * @param \Symfony\Component\HttpKernel\Event\ExceptionEvent $event
       *   The event to process.
       */
      public function on5xx(ExceptionEvent $event) {
        if (($exception = $event->getThrowable()) && $exception instanceof HttpExceptionInterface) {
          $this->makeSubrequest($event, '/my5xxcontroller', $exception->getStatusCode());
        }
      }
    
    }

Example for all exceptions (only for demonstration purpose, better check for the exceptions you want to catch):

    namespace Drupal\mymodule\EventSubscriber;
    
    use Drupal\Core\EventSubscriber\DefaultExceptionHtmlSubscriber;
    use Drupal\Core\EventSubscriber\MainContentViewSubscriber;
    use Symfony\Component\HttpKernel\Event\ExceptionEvent;
    use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
    
    /**
     * Exception subscriber for handling all exceptions
     */
    class MymoduleExceptionSubscriber extends DefaultExceptionHtmlSubscriber {
    
      protected static function getPriority() {
        return 129;
      }
    
      protected function getHandledFormats() {
        return ['html'];
      }
    
      /**
       * Handles all exceptions for HTML
       *
       * @param \Symfony\Component\HttpKernel\Event\ExceptionEvent $event
       *   The event to process.
       */
      public function onException(ExceptionEvent $event) {
        $request = $event->getRequest();
        $handled_formats = $this->getHandledFormats();
        $format = $request->query->get(MainContentViewSubscriber::WRAPPER_FORMAT, $request->getRequestFormat());
        if (empty($handled_formats) || in_array($format, $handled_formats)) {
          $this->makeSubrequest($event, '/my5xxcontroller', 500);
        }
      }
    
    }

*mymodule.services.yml*

    services:
      mymodule.5xx_subscriber:
        class: Drupal\mymodule\EventSubscriber\MymoduleExceptionSubscriber
        tags:
          - { name: event_subscriber }
        arguments: ['@http_kernel', '@logger.channel.php', '@redirect.destination', '@router.no_access_checks']