The == operator doesn't do what you think it does on reference types. That includes Strings. Somebody has already told you to use the
equals method, which is correct. But the use of System.exit is a bad idea, too.
Actually I would agree with your use of a "do" loop. It does mean you will end up working out a pay rate for somebody called "ZZZZ" however. Remember "ZZZZ" not ZZZZ.
Sentinel-controlled looping means you keep your loop going as long as something particular happens, in your case the name not being ZZZZ.
Forget about exception handling for the time being. Just resign yourself to the application crashing if you enter "Bob" when you want 123.45.
It is not appropriate to use do-loops around Scanner calls however. At this stage I suggest you simply use the nextDouble method, leaving out any type-checking. Ask about the type-checking later. Make your application simple and short, and you will better see what is happening.
You will see other people have difficulty with the same thing and if you have a week to spare, have a look at
this thread and look for the strange-looking syntax involving while and equalsIgnoreCase on the same line. That is a very strange-looking bit of syntax, but is probably the best way to run such a loop.
The advice to create an Employee class is good; hasn't your book told you that?