wait/notify/notifyAll - Not just any synchronized block or method will do. The currently executing thread must be in a synchronized block that locks on the object that you're invoking the wait/notify/notifyAll on. However, if you don't do that, you won't get a compile-time error; instead, you'll get a runtime exception.
yield - This does not throw any checked exceptions, so you don't need to invoke it within a try block.
wait/sleep/join - All three of these can throw an InterruptedException, so you'll usually want to invoke them within a try block. As an alternative, you can of course declare that the enclosing method throws an InterruptedException. Either way, if you don't handle the exception, you'll indeed get a compile-time error. Note that you apparently forgot to list wait() among the methods with checked exceptions.