It is situational
301 = Permanent Redirect - and better for SEO purposes as this tells the search engine that the redirected page has become the new page
302 = Temporary - Search engines of course follow the 302, I even think it will show the new page in results, but if it is a permanent, and you are worried about this - then use a 301.
Tough to give any kind of reason for use other than that above without some situational knowledge
But to a user, it is does not matter wheter it is a 301 or 302, but to bots the above differences apply.
And as a 404 I would assume it is a 301 - but not sure, due to I do not know the reason for the 404
For reference