集册 Java实例教程 调用带有反射引发异常的构造方法

调用带有反射引发异常的构造方法

欢马劈雪     最近更新时间:2020-01-02 10:19:05

486
调用带有反射引发异常的构造方法

import java.lang.reflect.InvocationTargetException;
/* 
 来自 
*n o w  j a v a  . c o m*/

import static java.lang.System.err;


public class ConstructorTroubleToo {

    public ConstructorTroubleToo() {

        throw new RuntimeException("exception in constructor");

    }


    public static void main(String... args) {

        try {

            Class<?> c = Class.forName("ConstructorTroubleToo");

            // Method propagetes any exception thrown by the constructor

            // (including checked exceptions).

            if (args.length > 0 && args[0].equals("class")) {

                Object o = c.newInstance();

            } else {

                Object o = c.getConstructor().newInstance();

            }
            /*
             from 时   代     Java  公  众  号 - nowjava.com 
            */


            // production code should handle these exceptions more gracefully

        } catch (ClassNotFoundException x) {

            x.printStackTrace();

        } catch (InstantiationException x) {

            x.printStackTrace();

        } catch (IllegalAccessException x) {

            x.printStackTrace();

        } catch (NoSuchMethodException x) {

            x.printStackTrace();

        } catch (InvocationTargetException x) {

            x.printStackTrace();

            err.format("%n%nCaught exception: %s%n", x.getCause());

        }

    }

}


展开阅读全文