Java中无法访问的返回语句

non*_*tor 1 java return try-catch

我最近在5分钟前快速编写了这个小函数,当时我遇到了编译器错误 unreachable statement

private static boolean isTransientField(String name, Class beanClass) {
        try {
            Field field = beanClass.getDeclaredField(name);
            return (field.getModifiers() & Modifier.TRANSIENT) == Modifier.TRANSIENT;
        } catch (Exception e) {return false;}

        return false;//unreachable statement
    }
Run Code Online (Sandbox Code Playgroud)

显然我的最后一次return false是无法到达,但为什么我的catch块只在特殊情况下运行?

Cel*_*ish 17

因为你在try中有一个return语句.