It will have a different effect because catching it in the outer except block will prevent the else (try-except-else) block from executing the steps to populate the the metadata from the serializer object.

This allows the client to use OPTIONS to get the serializer metadata (like type, help_text, etc) before using a PUT to create a new object at the specified endpoint. Otherwise, the HTTP404 will prevent the serializer metadata from being part of the OPTIONS response.