Java return 之后的对象声明;?

Java object declaration following return;?

我在查看 jstl 1.1.2 的一些代码时遇到了一些不熟悉的 Java 语法。我突然想到我正在查看的代码是由 Beyond Compare(或其插件)反向编译的,所以这可能与它有关。

方法末尾的代码如下所示:

...
p.parse(page.getInputStream(), h);
if(failed)
    return vmFromString("taglib " + prefix + " (" + uri + ") allows only the " + 
    "following taglibs to be imported: " + permittedTaglibs);
return null;
SaxException ex;
ex;
return vmFromString(ex.toString());
ex;
return vmFromString(ex.toString());
ex;
return vmFromString(ex.toString());
}

在 jstl 1.1 中,在他们重构 PermittedTaglibsHandler 之前,它看起来像这样:

...
saxparser.parse(pagedata.getInputStream(), permittedtaglibshandler);
if(failed)
    return vmFromString("taglib " + s+ " (" + s1+ ") allows only the " + 
    "following taglibs to be imported: " + permittedTaglibs);
return null;
Object obj;
obj;
return vmFromString(((SaxException) (obj)).toString());
obj;
return vmFromString(((ParserConfigurationException) (obj)).toString());
obj;
return vmFromString(((IOException) (obj)).toString());
}

这种奇怪的语法只是反向编译的产物,还是在 return 语句之后有有意义的代码?

谢谢,

丽贝卡

代码只是为处理多个异常而定制的异常处理程序循环 - 因此是多个 return 语句。它显然没有被正确翻译成 Java.