[SPARK-3293] yarn's web show "SUCCEEDED" when the driver throw a exception in yarn-client

Instead of throwing the exception, why not just set `exitStatus` directly and avoid having a custom exception? You can also use that as a trigger to call "finish()" if it hasn't been called yet, with a nice error message about the app having called `System.exit`.

That avoids messing with the app's exception handling, since very few people realize `System.exit` can throw and thus don't really plan for it.