I suppose failing early has its merits, but one of the problems with Java (and other insular languages) is that catastrophic failures and anomalous behavior are also possible in the runtime itself. Since you probably don't get source code, you'll have a harder time debugging.Friendlier error messages along the lines of "java.lang.ArrayIndexOutOfBoundsException at line 23"? Also being easier to diagnose as they tend to fail fast.
I'm not sure that creating a GUI should be considered a prerequisite to success.
Exceptions are not nearly as mysterious as you imply. I think a competent developer knows how to debug, and one that understands the machine that they're using understands what the exception means. It's developers that stick to the managed languages--as you're recommending--who tend not to learn how to do these things for the simple reason that "they're too hard"--as you're implying. I think that's sad; there are curricula springing up which will stick to languages like C# and Java, and that means they're producing developers who don't know how computers work.