Проблема, с которой вы сталкиваетесь, заключается в том, что получение 404 не является исключением. Чтобы справиться с этим, вы должны добавить некоторый код, который проверит код состояния ответа и оттуда определит, что должно быть сделано. Например, вы получите ответ и будете использовать следующее:
if(response.status == 404)
//Code for not receiving the content you expect
Проблема в том, что есть много потенциальных ответов, которые вы можете получить, но которые не будут соответствовать вашим ожиданиям, поэтому я бы порекомендовал занести в белый список определенные диапазоны ответов, а не искать те, которые являются проблемой. Например
if(response.status >= 200 && response.status <= 299)
//Code to run when you receieve a good response
Это пример, от вас зависит, какие ответы вы хотите обработать.