通过将java版本链接到更高的问题将会得到解决,但我不想以这种方式做。我想捕获异常并抛出用户可理解的消息。它可能与否?
答案 0 :(得分:1)
如果你可以在抛出“不支持的版本”异常的代码周围包装一个try / catch,那么捕获Throwable
就可以了。 (最好抓住更具体的异常UnsupportedClassVersionError
尽管......)
然而,有一些重要的警告:
启动JVM时经常抛出异常,并且无法捕获JVM启动期间抛出的异常。 (它们通常在运行任何应用程序代码之前发生;即在main
方法之前,在任何静态初始化之前。)
或者换句话说,您通常不能将try / catch放在抛出此异常的代码周围。
另一种情况是当您尝试动态加载类(例如Class.forName
)时......而不是在启动应用程序时。在原始(现已删除)代码中,launch
方法可能正在加载类,并调用静态或实例方法来“启动”应用程序。
为诊断以外的任何目的捕获异常是坏主意。例外Error
例外,这些例外通常是不可恢复的。