Aviso do PHP: O conteúdo do conteúdo do POST de n bytes excede o limite de 3145728 bytes em Desconhecido na linha 0

Estou bastante surpreso ao encontrar o erro mencionado acima em meu log de erros porque achei que já tinha feito o trabalho necessário para capturar o erro no meu script PHP:

if ($_FILES['image']['error'] == 0)
{
 // go ahead to process the image file
}
else
{
 // determine the error
 switch($_FILES['image']['error'])
 {
  case "1":
  $msg = "Uploaded file exceeds the upload_max_filesize directive in php.ini.";
  break;
  ....
 }
}

No meu script PHP.ini, as configurações relevantes são:

memory_limit = 128M
post_max_size = 3M
upload_max_filesize = 500K

Eu entendo que o 3M é equivalente a 3145728 bytes e que isso é o que está provocando o erro. Se o tamanho do arquivo for acima de 500k, mas menor que 3M, o script PHP poderá ser executado de acordo com o normal, emitindo a mensagem de erro em$msg conformecase 1.

Como obtenho este erro em vez de deixar o script terminar abruptamente com um aviso de PHP quando o tamanho da postagem excedepost_max_size mas ainda bem dentro do limite de memória? Eu olhei para questões semelhantesAqui, Aqui eAqui, mas não conseguiu encontrar uma resposta.

questionAnswers(2)

yourAnswerToTheQuestion