¿Cómo puedo reemplazar un método de clase en Java y agregar una declaración de "tiros"?

¿Sería posible tener un AsyncTask en Android que "lanza" las cosas? Si no @Override el método, no se llama. Si agrego los "tiros" al final, hay errores del compilador. Por ejemplo, quiero hacer algo como:

class testThrows extends AsyncTask<String,Void,JSONObject> { @Override protected JSONTokener doInBackground(<String>... arguments) throws JSONException { String jsonString = arguments[0]; JSONTokener json = new JSONTokener(jsonString); JSONObject object = json.getJSONObject("test"); return object; } } 

json.getJSONObject lanza una JSONException. ¿Hay alguna manera de hacer esto?

Lo que hay que hacer es envolver la excepción con una excepción de tiempo de ejecución (no marcada) (normalmente algo como IllegalArgumentException o si no coincide con la semántica, RuntimeException ) y especificar la excepción verificada como "causa raíz" (normalmente como argumento del constructor).

Y no, no se puede ampliar el conjunto de excepciones verificadas: esto sería contra los principios básicos OO, similar a cómo no se puede disminuir la visibilidad (de público a privado, por ejemplo).

No puede anular y lanzar más excepciones; sólo puede mantener la firma como es o lanzar menos excepciones.

Puede lanzar excepciones no comprobadas; ésos no cambian la firma del método.

No puedes hacer esto. Gracias a Time4Tea, pude agregar métodos de devolución de llamada a la clase que se llama cuando hay un error. Por ejemplo:

 try { JSONTokener json = new JSONTokener(stringToJsonify); JSONObject object = json.getJSONObject("test"); } catch (JSONException e){ onJsonException(); } 

Donde onJsonException es el método de devolución de llamada de clase.

No puede anular los métodos de tal manera.

En su caso la solución es agregar try-catch bloquear y devolver false. También puede agregar un campo de String tou su tarea y llenarlo con la descripción del error. A continuación, puede utilizarlo en el método onPostExecute() .

  • Cómo implementar correctamente Parcelable con un ArrayList <Parcelable>?
  • 'Debe sustituir un método de superclase' Errores después de importar un proyecto en Eclipse
  • Android - Geocoder no obtener la cadena de direcciones
  • Android: ¿Cómo eliminar espacios en blanco en caracteres chinos?
  • Cómo dejar que Async Task termine en Android
  • Spinner con sub-spinner no funciona como se esperaba
  • ¿Hay una manera de configurar la altura y el contenido de ajuste al mismo tiempo en android?
  • Sesión de manejo en android mientras se registra en el lado del servidor en php
  • Sube la imagen de android a java servlet y guárdala
  • Uso de XML simple y obtención de NoClassDefFoundError en Android
  • Cómo utilizar FirebaseInstanceId.getInstance (). DeleteInstanceId ()?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.