I guess I'm not sure why you'd return a generic object, in the world of complex types these days, but if you really need to work with a generic object, then yes - I'd probably return an empty object. I dont think you can set an object to null. Null is a value, and objects dont have values, objects are types in themselves, so you'll probably have to set it to nothing and return it, which seems strange to me actually, but in essence, you are returning nothing.
Honestly, I usually ignore the warning about functions returning on all code paths, when it's because of a try catch block. But I usually have incorporated some type of global event or custom error handling, so when I catch an exception, I throw a friendly error message.