¿Cómo oculto una excepción en Java?

varuk

Buenas.

El caso es que estoy tengo un método, dentro de una clase que implementa otra ("implements" ) que cuando comparas un campo si el valor es null suelta una excepción tal que así:

objeto.Exception: XXObject["valorXXXX"] not found.

El caso es que necesito comparar ese campo

Tal que así:

if (array[j].getCampo() == null) {

haz esto
}
else{

haz esto otro

}

Siempre funciona bien, pero en el caso de que el campo sea null me salta el mensaje de la excepción. Mi duda es ¿Hay alguna forma de "ocultar" ese mensaje?

Gracias ^^

Gnos1s

Mete ese código entre un try y un catch. En el catch que te muestre un mensaje por pantalla.

Eclipse te lo rellenará según el tipo de excepción asociada (si es de entrada salida, de acceso, de null, etc...).

Eso se llama capturar la excepción, así te dejará que continúe el programa ejecutándose, aunque a la larga puede darte algún problema de ejecución.

El error no lo dice por capricho, tenlo en cuenta.

Por cierto, tienes la etiqueta [ code ] por si quieres pegar el código con un formato bueno ;).

1 respuesta
varuk

#2 ok, gracias. Bueno, deberé hacerlo de otra forma que no sea con esa comparación.

De todas formas, la excepción que me lanza es:

/**
     * Get the value object associated with a key.
     *
     * @param key   A key string.
     * @return      The object associated with the key.
     * @throws   JSONException if the key is not found.
     */
    public Object get(String key) throws JSONException {
        Object o = opt(key);
        if (o == null) {
            throw new JSONException("JSONObject[" + quote(key) +
                    "] not found.");
        }
        return o;
     }
zoeshadow

Sino también puedes hacer un @override de la función, y quitarle que lance una excepción, seria tan facil como quitarle

throws JSONException

&&
        if (o == null) {
            throw new JSONException("JSONObject[" + quote(key) +
                    "] not found.");
        }

de manera que quedaría algo así como

 
@override
public Object get(String key) {
        Object o = opt(key);
        return o;
     }

No se si en tu contexto valdría xD

Usuarios habituales

  • zoeshadow
  • varuk
  • Gnos1s