Обработайте 404 с помощью пользовательских ошибок web.config, это правильный способ обработки ошибок этого типа, и на странице NotFound.aspx вы можете записать ошибку.
<configuration>
<system.web>
<customErrors mode="On" >
<error statusCode="404" redirect="NotFound.aspx"/>
</customErrors>
</system.web>
</configuration
Теперь для обработки всех 404 исключений из кода, поскольку общий обработчик исключений может быть реализован в global.asax - (метод Application_Error), этот обработчик способен отследить любую ошибку, возникшую на прикладном уровне asp.net, и не может обработать 404 запрос, потому что вы запрашиваете что-то за пределами asp.net.