Answer
Exception middleware (e.g., UseExceptionHandler) sits high in the pipeline and can catch exceptions from the entire app, including non-MVC endpoints.
Exception Filters run only within the MVC pipeline and can convert exceptions to action results at the controller/action level.
Best practice is to use middleware for global exception handling and filters for MVC-specific customization.