Just read the documentation:
require is identical to include except upon failure it will also produce a fatal E_COMPILE_ERROR level error. In other words, it will halt the script
That means, the script execution is aborted when this error is encountered. Your custom error handler will be used but
throw will be ignore because that assumes further execution which is not allowed at this point.