it's because you have a return statement within the scope of the try/catch block. I'm guessing the compiler wont see past that.

move your return to AFTER the catch block ends - that is the normal flow (return a zero-length string as an abnormal flow in the catch)