abk.core.util
Class ExceptionUtils

java.lang.Object
  extended by abk.core.util.ExceptionUtils

public final class ExceptionUtils
extends Object

Métodos estáticos que implementan el lanzamiento de excepciones en ciertas condiciones habituales.


Constructor Summary
private ExceptionUtils()
          Impide la creación de instancias de ExceptionUtils.
 
Method Summary
static Throwable causeOf(Throwable t)
          Devuelve la causa de una excepción, si la tuviera, o bien la propia excepción si no hay otra causa para ella.
static
<E extends Throwable>
E
exceptionOf(Class<E> type, Throwable ex)
          Devuelve una excepción del tipo indicado.
static AssertionError newAssertionError(String mensaje, Throwable t)
          Crea un error AssertionError especificando un mensaje y una causa.
static
<E extends Throwable>
E
reduceStackTrace(E t, Class<?> type)
          Reduce la traza de pilas eliminando los elementos a partir de la primera aparición de una determinada clase.
static void requireArgument(boolean testResult)
          Lanza una excepción IllegalArgumentException en el caso de que un determinado test devuelve false.
static void requireArgument(boolean testResult, Object message)
           
static void requireArgument(boolean testResult, String pattern, Object... args)
          Lanza una excepción IllegalArgumentException en el caso de que un determinado test devuelve false.
static
<T> Class<? extends T>
requireAssignable(Class<?> clazz, Class<T> classTo)
          Comprueba si una clase es asignable a un tipo dado y devuelve la misma clase marcada como subclase del tipo indicado, lanzando una excepción IllegalClassException si no lo es.
static
<T> Class<? extends T>
requireAssignable(Class<?> clazz, Class<T> classTo, Object message)
           
static
<T> Class<? extends T>
requireAssignable(Class<?> clazz, Class<T> classTo, String pattern, Object... args)
          Comprueba si una clase es asignable a un tipo dado y devuelve la misma clase marcada como subclase del tipo indicado, lanzando una excepción IllegalClassException si no lo es.
static
<T> T
requireAssignable(Object instancia, Class<T> classTo)
          Comprueba si una instancia es asignable a un tipo dado y devuelve la misma instancia con un casting a dicho tipo si es posible, lanzando una excepción IllegalClassException si no lo es.
static
<T> T
requireAssignable(Object instancia, Class<T> classTo, Object message)
           
static
<T> T
requireAssignable(Object instancia, Class<T> classTo, String pattern, Object... args)
          Comprueba si una instancia es asignable a un tipo dado y devuelve la misma instancia con un casting a dicho tipo si es posible, lanzando una excepción IllegalClassException si no lo es.
static
<T extends CharSequence>
T
requireNonEmpty(T cs)
          Devuelve la misma cadena de caracteres que se le pasa si ésta no está vacía, lanzando una excepción NullArgumentException si es nula, o una excepción EmptyArgumentException si, no siendo nula, tiene longitud cero.
static
<T extends CharSequence>
T
requireNonEmpty(T cs, Object message)
           
static
<T extends CharSequence>
T
requireNonEmpty(T cs, String pattern, Object... args)
          Devuelve la misma cadena de caracteres que se le pasa si ésta no está vacía, lanzando una excepción NullArgumentException si la cadena es nula, o una excepción EmptyArgumentException si, no siendo nula, tiene longitud cero.
static
<T> T
requireNonNull(T instancia)
          Devuelve el mismo objeto que se le pasa si éste no es nulo, lanzando una excepción NullArgumentException en caso contrario.
static
<T> T
requireNonNull(T instancia, Object message)
          Devuelve el mismo objeto que se le pasa si éste no es nulo, lanzando una excepción NullArgumentException con el mensaje indicado en caso contrario.
static
<T> T
requireNonNull(T instancia, String pattern, Object... args)
          Devuelve el mismo objeto que se le pasa si éste no es nulo, lanzando una excepción NullArgumentException con el mensaje indicado en caso contrario.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExceptionUtils

private ExceptionUtils()
Impide la creación de instancias de ExceptionUtils.

Method Detail

causeOf

public static final Throwable causeOf(Throwable t)
Devuelve la causa de una excepción, si la tuviera, o bien la propia excepción si no hay otra causa para ella.

Parameters:
t - Excepción cuya causa se quiere recuperar.
Returns:
La causa obtenida con Exception.getCause(), o bien la propia excepción pasada si la causa de ésta es null. El valor devuelto será nulo si t es nulo.
See Also:
Throwable.getCause()

exceptionOf

public static final <E extends Throwable> E exceptionOf(Class<E> type,
                                                        Throwable ex)
Devuelve una excepción del tipo indicado. La excepción devuelta será nueva únicamente si ex no es del tipo recibido. En otro caso, devolverá la misma excepción que se le pasa.

Su uso previsto es para unificar el lanzamiento de excepciones controladas en un único tipo:

 try {
    // haz algo
 } catch (Throwable e) {
    throw ExceptionUtils.exceptionOf(NewException.class, e);
 }
 
Normalmente se usará a través de una clase intermedia:
 class MiException extends Exception {
    // parte de la definicion
 
 public static final miExceptionOf(Throwable t)
    {
    return ExceptionUtils.exceptionOf(MiException.class,t);
    }
 }
 

Type Parameters:
E - Tipo de la excepción que se desea recibir. Debe implementar un constructor público sin argumentos.
Parameters:
type - Clase que identifica la excepción que se se quiere recuperar.
ex - Excepción a partir de la cual se desea recuperar una del tipo E.
Returns:
Una excepción de tipo E, que será ex si es de tipo E, o una instancia nueva de E cuya causa será ex en otro caso.
Throws:
ExceptionInInitializerError - si ClassUtils.createObject(Class) la lanza.
NotImplementedException - si E no implementa un constructor por defecto.
NullPointerException - si type es nulo.
SecurityException - si ClassUtils.createObject(Class) la lanza.
See Also:
ClassUtils.createObject(Class)

reduceStackTrace

public static <E extends Throwable> E reduceStackTrace(E t,
                                                       Class<?> type)
Reduce la traza de pilas eliminando los elementos a partir de la primera aparición de una determinada clase.

Parameters:
t - Excepción para la que reducimos la traza.
type - Tipo de la clase donde tenemos que empezar a limpiar.

requireNonNull

public static final <T> T requireNonNull(T instancia)
Devuelve el mismo objeto que se le pasa si éste no es nulo, lanzando una excepción NullArgumentException en caso contrario.

Type Parameters:
T - Tipo de dato del objeto.
Parameters:
instancia - Objeto a comprobar.
Returns:
El objeto que se pasa si no es nulo.
Throws:
NullArgumentException - si el argumento instancia es nulo.

requireNonNull

public static final <T> T requireNonNull(T instancia,
                                         String pattern,
                                         Object... args)
Devuelve el mismo objeto que se le pasa si éste no es nulo, lanzando una excepción NullArgumentException con el mensaje indicado en caso contrario.

Type Parameters:
T - Tipo de dato del objeto.
Parameters:
instancia - Objeto a comprobar.
pattern - Patrón del mensaje.
args - Argumentos que se aplican al patrón.
Returns:
El objeto que se pasa si no es nulo.
Throws:
NullArgumentException - si el argumento instancia es nulo.

requireNonNull

public static final <T> T requireNonNull(T instancia,
                                         Object message)
Devuelve el mismo objeto que se le pasa si éste no es nulo, lanzando una excepción NullArgumentException con el mensaje indicado en caso contrario.

Type Parameters:
T - Tipo de dato del objeto.
Parameters:
instancia - Objeto a comprobar.
message - Instancia del mensaje, que se obtiene invocando el método Object.toString().
Returns:
El objeto que se pasa si no es nulo.
Throws:
NullArgumentException - si el argumento instancia es nulo.

requireArgument

public static final void requireArgument(boolean testResult)
Lanza una excepción IllegalArgumentException en el caso de que un determinado test devuelve false.

Parameters:
testResult - Resultado del test realizado. Si es false se lanza una excepciión IllegalArgumentException.
Throws:
IllegalArgumentException - si testResult es false.

requireArgument

public static final void requireArgument(boolean testResult,
                                         String pattern,
                                         Object... args)
Lanza una excepción IllegalArgumentException en el caso de que un determinado test devuelve false.

Parameters:
testResult - Resultado del test realizado. Si es false se lanza una excepciión IllegalArgumentException.
pattern - Patrón del mensaje de error para la excepción, si se lanza.
args - Argumentos para dar formato al mensaje de error.
Throws:
IllegalArgumentException - si testResult es false.

requireArgument

public static final void requireArgument(boolean testResult,
                                         Object message)

requireNonEmpty

public static final <T extends CharSequence> T requireNonEmpty(T cs)
Devuelve la misma cadena de caracteres que se le pasa si ésta no está vacía, lanzando una excepción NullArgumentException si es nula, o una excepción EmptyArgumentException si, no siendo nula, tiene longitud cero.

Type Parameters:
T - Tipo de la cadena de caracteres.
Parameters:
cs - Cadena a comprobar.
Returns:
La cadena que se le pasa si no está vacía.
Throws:
NullArgumentException - si la cadena es nula.
EmptyArgumentException - si la cadena, no siendo nula, está vacía.

requireNonEmpty

public static final <T extends CharSequence> T requireNonEmpty(T cs,
                                                               String pattern,
                                                               Object... args)
Devuelve la misma cadena de caracteres que se le pasa si ésta no está vacía, lanzando una excepción NullArgumentException si la cadena es nula, o una excepción EmptyArgumentException si, no siendo nula, tiene longitud cero.

Type Parameters:
T - Tipo de la cadena de caracteres.
Parameters:
cs - Cadena a comprobar.
pattern - Patrón del mensaje para la excepción que se cree.
args - Argumentos que se aplican al patrón.
Returns:
La cadena que se le pasa si no está vacía.
Throws:
NullArgumentException - si la cadena es nula.
EmptyArgumentException - si la cadena, no siendo nula, está vacía.

requireNonEmpty

public static final <T extends CharSequence> T requireNonEmpty(T cs,
                                                               Object message)

requireAssignable

public static final <T> T requireAssignable(Object instancia,
                                            Class<T> classTo)
Comprueba si una instancia es asignable a un tipo dado y devuelve la misma instancia con un casting a dicho tipo si es posible, lanzando una excepción IllegalClassException si no lo es.

Es idéntica a Class.cast(Object) pero lanza una excepción que desciende de IllegalArgumentException en vez de ClassCastException.

Type Parameters:
T - Tipo de dato con el que validamos.
Parameters:
instancia - Instancia que validamos. Puede ser nula.
classTo - Clase que caracteriza a T.
Returns:
La propia instancia, pero como variable de tipo T.
Throws:
IllegalClassException - si instancia no es asignable a T.
NullArgumentException - si classTo es nula.

requireAssignable

public static final <T> T requireAssignable(Object instancia,
                                            Class<T> classTo,
                                            String pattern,
                                            Object... args)
Comprueba si una instancia es asignable a un tipo dado y devuelve la misma instancia con un casting a dicho tipo si es posible, lanzando una excepción IllegalClassException si no lo es.

Es idéntica a Class.cast(Object) pero lanza una excepción que desciende de IllegalArgumentException en vez de ClassCastException.

Type Parameters:
T - Tipo de dato con el que validamos.
Parameters:
instancia - Instancia que validamos. Puede ser nula.
classTo - Clase que caracteriza a T.
pattern - Patrón del mensaje para la excepción que se cree.
args - Argumentos que se aplican al patrón.
Returns:
La propia instancia, pero como variable de tipo T.
Throws:
IllegalClassException - si instancia no es asignable a T.
NullArgumentException - si classTo es nula.

requireAssignable

public static final <T> T requireAssignable(Object instancia,
                                            Class<T> classTo,
                                            Object message)

requireAssignable

public static final <T> Class<? extends T> requireAssignable(Class<?> clazz,
                                                             Class<T> classTo)
Comprueba si una clase es asignable a un tipo dado y devuelve la misma clase marcada como subclase del tipo indicado, lanzando una excepción IllegalClassException si no lo es.

Es semejante a Class.asSubclass(Class) pero lanza una excepción que desciende de IllegalArgumentException en vez de ClassCastException.

Type Parameters:
T - Tipo de dato con el que validamos.
Parameters:
clazz - Clase que validamos. Puede ser nula.
classTo - Clase que caracteriza a T.
Returns:
El propio parámetro clazz, pero como clase de tipo <? extends T>.
Throws:
NullArgumentException - si classTo es nula.
IllegalClassException - si clazz no es asignable a T.

requireAssignable

public static final <T> Class<? extends T> requireAssignable(Class<?> clazz,
                                                             Class<T> classTo,
                                                             String pattern,
                                                             Object... args)
Comprueba si una clase es asignable a un tipo dado y devuelve la misma clase marcada como subclase del tipo indicado, lanzando una excepción IllegalClassException si no lo es.

Es semejante a Class.asSubclass(Class) pero lanza una excepción que desciende de IllegalArgumentException en vez de ClassCastException.

Type Parameters:
T - Tipo de dato con el que validamos.
Parameters:
clazz - Clase que validamos. Puede ser nula.
classTo - Clase que caracteriza a T.
pattern - Cadena de texto a usar como patrón del mensaje.
args - Argumentos a aplicar al patrón del mensaje.
Returns:
El propio parámetro clazz, pero como clase de tipo <? extends T>.
Throws:
NullArgumentException - si classTo es nula.
IllegalClassException - si clazz no es asignable a T.

requireAssignable

public static final <T> Class<? extends T> requireAssignable(Class<?> clazz,
                                                             Class<T> classTo,
                                                             Object message)

newAssertionError

public static final AssertionError newAssertionError(String mensaje,
                                                     Throwable t)
Crea un error AssertionError especificando un mensaje y una causa.

Parameters:
mensaje - Mensaje del error. Si es nulo se usa una cadena vacía.
t - Causa del error.
Returns:
Instancia de AssertionError creada.


Copyright © 2024. All rights reserved.