Check whether given exception is compatible with the exceptions declared in a throws clause : Exception « Development « Java Tutorial






import java.lang.reflect.Array;
import java.util.Arrays;

/*
 * Copyright 2002-2007 the original author or authors.
 *
 * Licensed 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.
 */

//Revised from springframework

/**
 * Miscellaneous object utility methods. Mainly for internal use within the
 * framework; consider Jakarta's Commons Lang for a more comprehensive suite
 * of object utilities.
 *
 * @author Juergen Hoeller
 * @author Keith Donald
 * @author Rod Johnson
 * @author Rob Harrop
 * @author Alex Ruiz
 * @since 19.03.2004
 * @see org.apache.commons.lang.ObjectUtils
 */
abstract class ObjectUtils {

  private static final int INITIAL_HASH = 7;
  private static final int MULTIPLIER = 31;

  private static final String EMPTY_STRING = "";
  private static final String NULL_STRING = "null";
  private static final String ARRAY_START = "{";
  private static final String ARRAY_END = "}";
  private static final String EMPTY_ARRAY = ARRAY_START + ARRAY_END;
  private static final String ARRAY_ELEMENT_SEPARATOR = ", ";


  /**
   * Check whether the given exception is compatible with the exceptions
   * declared in a throws clause.
   * @param ex the exception to checked
   * @param declaredExceptions the exceptions declared in the throws clause
   * @return whether the given exception is compatible
   */
  public static boolean isCompatibleWithThrowsClause(Throwable ex, Class[] declaredExceptions) {
    if (!isCheckedException(ex)) {
      return true;
    }
    if (declaredExceptions != null) {
      for (int i = 0; i < declaredExceptions.length; i++) {
        if (declaredExceptions[i].isAssignableFrom(ex.getClass())) {
          return true;
        }
      }
    }
    return false;
  }

  /**
   * Return whether the given throwable is a checked exception:
   * that is, neither a RuntimeException nor an Error.
   * @param ex the throwable to check
   * @return whether the throwable is a checked exception
   * @see java.lang.Exception
   * @see java.lang.RuntimeException
   * @see java.lang.Error
   */
  public static boolean isCheckedException(Throwable ex) {
    return !(ex instanceof RuntimeException || ex instanceof Error);
  }

}








6.23.Exception
6.23.1.Error Handling
6.23.2.Types of Exceptions
6.23.3.Java's Unchecked RuntimeException Subclasses
6.23.4.Java's Checked Exceptions Defined in java.lang
6.23.5.Throwing an Exception from a Method
6.23.6.Write a catch block that handles java.lang.Exception
6.23.7.Handling Exceptions
6.23.8.Multiple catch Blocks
6.23.9.The finally Block
6.23.10.Exception Objects: stack trace
6.23.11.Defining Your Own Exceptions, Throwing Your Own Exception
6.23.12.Demonstrate exception chaining.
6.23.13.Getting the Stack Trace of an Exception
6.23.14.Put printStackTrace() into a String: redirect the StackTrace to a String with a StringWriter/PrintWriter
6.23.15.Check whether given exception is compatible with the exceptions declared in a throws clause
6.23.16.Convert an exception to a String with full stack trace
6.23.17.Get Deepest Throwable
6.23.18.Get the stack trace of the supplied exception.
6.23.19.Is Checked Exception
6.23.20.Locates a particular type of exception
6.23.21.Make a string representation of the exception
6.23.22.Print all of the thread's information and stack traces
6.23.23.Return stack trace from the passed exception as a string
6.23.24.Returns the root cause of an exception
6.23.25.Create a new Exception, setting the cause if possible.
6.23.26.Returns the output of printStackTrace as a String.
6.23.27.This program creates a custom exception type.
6.23.28.Utility methods for dealing with stack traces