集册 Java实例教程 调用一个方法,并用运行时异常掩盖所有异常。

调用一个方法,并用运行时异常掩盖所有异常。

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

468
调用一个方法,并用运行时异常掩盖所有异常。
/**
 * 时代Java公众号 - N o w J a  v a . c o m 提 供 
**/

/*

 * $Id: ClassUtil.java 709153 2008-10-30 12:54:10Z apetrelli $

 *

 * Licensed to the Apache Software Foundation (ASF) under one

 * or more contributor license agreements.  See the NOTICE file

 * distributed with this work for additional information

 * regarding copyright ownership.  The ASF licenses this file

 * to you under the Apache License, Version 2.0 (the

 * "License"); you may not use this file except in compliance

 * with the License.  You may obtain a copy of the License at

 *

 * http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing,

 * software distributed under the License is distributed on an

 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

 * KIND, either express or implied.  See the License for the

 * specific language governing permissions and limitations

 * under the License.

 */

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;


public class Main{

    /**

     * Invokes a method, masking with a runtime exception all the exceptions.

     *

     * @param obj The object from which a method will be called.

     * @param method The method to call.

     * @param args The arguments of the method.

     * @return The object returned, if the method is not "void".

     * @since 2.0.7

     */

    public static Object invokeMethod(Object obj, Method method,

            Object... args) {

        try {

            return method.invoke(obj, args);

        } catch (IllegalArgumentException e) {

            throw new CannotAccessMethodException("The arguments for '"

                    + method.getName() + "' in class '"

                    + obj.getClass().getName() + "' are not valid", e);

        } catch (IllegalAccessException e) {

            throw new CannotAccessMethodException("Cannot access '"

                    + method.getName() + "' in class '"/**from n o w j a v a . c o m**/

                    + obj.getClass().getName() + "'",
展开阅读全文