Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何捕获java中不支持的主版本和次版本异常_Java_Exception Handling - Fatal编程技术网

如何捕获java中不支持的主版本和次版本异常

如何捕获java中不支持的主版本和次版本异常,java,exception-handling,Java,Exception Handling,通过将java版本链接到更高的版本,问题将得到解决,但我不想这样做。我想捕获异常并抛出用户可以理解的消息。是否可能?如果您可以在抛出“不支持的版本”异常的代码周围包装一个try/catch,那么捕获可丢弃的就可以了。(最好捕获更具体的异常不受支持的ClassVersionError但是…) 然而,有一些重要的警告: 异常通常在启动JVM时抛出,无法捕获JVM启动期间抛出的异常。(它们通常发生在应用程序的任何代码运行之前;即main方法之前,任何静态初始化之前。) 或者换一种说法,您通常不能将t

通过将java版本链接到更高的版本,问题将得到解决,但我不想这样做。我想捕获异常并抛出用户可以理解的消息。是否可能?

如果您可以在抛出“不支持的版本”异常的代码周围包装一个try/catch,那么捕获可丢弃的
就可以了。(最好捕获更具体的异常
不受支持的ClassVersionError
但是…)

然而,有一些重要的警告:

  • 异常通常在启动JVM时抛出,无法捕获JVM启动期间抛出的异常。(它们通常发生在应用程序的任何代码运行之前;即
    main
    方法之前,任何静态初始化之前。)

    或者换一种说法,您通常不能将try/catch放在引发此异常的代码周围

  • 另一种情况是尝试动态加载类(例如,
    class.forName
    )。。。启动应用程序时不会。在原始(现已删除)代码中,
    launch
    方法可能正在加载一个类,并调用静态或实例方法来“启动”应用程序

  • 为了诊断以外的任何目的捕获异常都不是一个好主意。异常是一个
    错误
    异常,通常来说,这些异常是不可恢复的


这是对的吗?他要问的是,launch(args)将抛出主要版本异常和次要版本异常。实际上,如果是这样的话,那么main方法本身将不会正确触发?@JayaAnanthram-他的
launch
方法可能正在使用
Class.forName()
或类似的方法来加载一个类,这就是抛出异常。无论如何,我的第一个要点已经解释过,如果异常发生在JVM启动期间,那么它将无法捕获。。在这个问题上没有适当地提到它。我弄糊涂了。。