I need a decent phrase with the same meaning as "Catch somebody with their pants down".

For example, if a formal guest or your boss visits you when you are least expecting it, and finds you very casually dressed or not ready with the questions your boss has for you, what possible phrase could you use?

Do you find these natural and decent?

1) You have really caught me unawares.

2) You have really caught me off guard.

3) You have really caught me on the hop.

4) You have really caught me napping.

5) You have really caught me unprepared.


Get Caught With Your Hand in the Cookie Jar is the equivalent of Catch somebody with their pants down".

Your choices:caught me off guard.caught me unprepared.are ok
All your suggestions are natural English and all are "decent" (i.e. can be used in polite company). They do not all have exactly the same shade of meaning, though. On the whole, #5 seems the safest for the situation you decsribe.

In conversation one would almost always say "you've" not "you have".

"caught me with my pants down" is a pretty mild expression, and in many working environments it would not be inappropriate to say it to your boss. You probably wouldn't want to say it in front of a formal guest though.
Students: We have free audio pronunciation exercises.
 dimsumexpress's reply was promoted to an answer.
A tangential phrase, though not the one you're looking for: "to put someone on the spot", i.e. "to ask someone, unexpectedly, the kind of question that might be awkward or difficult to answer".

Sometimes the process itself includes the phrase "Sorry to put you on the spot".

Best wishes,