Ningún error / advertencia del compilador para no coger / lanzar excepción
No entiendo porqué el compilador no me advierte sobre no coger o lanzar una SQLException
. Aquí está la situación:
He definido esta interfaz:
- Firebase: ¿una forma limpia de usar campos enum en Kotlin / Java?
- ¿Cómo mostrar la vista previa de 2 cámaras una al lado de la otra?
- Animación con dos interpoladores
- Forma de círculo antialise Google Maps V2 Android
- Error: no se puede encontrar la clase de símbolo RecyclerView
public interface GenericDatabaseManager { public void createTables(DataBase model) throws SQLException; }
Entonces he creado esta clase que implementa la interfaz dada:
public class SqliteHelper extends SQLiteOpenHelper implements GenericDatabaseManager { @Override public void createTables(DataBase model) throws SQLException { // Code that throws SQLException }
Y finalmente llamo a este SqliteHelper.createTables () de aquí:
public class DatabaseManager extends CoreModule { private boolean createUpdateDB(final String dbString, final String appId) { // Previous code... if (oldVer == -1) { dbCoreModel.addModel(dbModel); dbCoreModel.getManager().createTables(dbModel); return true; } // More code... } }
dbCoreModel.getManager()
devuelve una instancia de GenericDatabaseManager
. Pero el compilador no muestra ningún error en dbCoreModel.getManager().createTables(dbModel);
, Aunque esta línea arroja una SQLException
.
¿Alguien tiene una idea sobre por qué está sucediendo esto? Gracias por adelantado.
EDIT : sobre SQLException
no necesita ser atrapado porque es un RuntimeException
. Esto no es verdad . He aquí un ejemplo:
import java.sql.SQLException; interface Interface { public void throwsSQLException() throws SQLException; } class Test implements Interface { @Override public void throwsSQLException() throws SQLException { throw new SQLException(); } } public class Main { public static void main(String[] args) { Interface i = new Test(); i.throwsSQLException(); System.out.println("Finished"); } }
El compilador NO muestra un error en i.throwsSQLException();
en este caso.
- Android READ_EXTERNAL_STORAGE permiso no funciona
- Bloqueo de registro de GCM AsyncTask hasta que se produzca el tiempo de espera
- ¿Es posible cargar sólo líneas específicas de código según la versión de Android OS?
- Cómo ordenar ArrayLists utilizando booleanos en java?
- ¿Cómo implementar la videoconferencia de conferencia telefónica de 3 vías con WebRTC Native Code para Android?
- Cómo ocultar los números de la semana en CalendarView (DatePicker)
- Cómo cambiar la línea azul en el AlertDialog (tema Holo)
- Arrastrar y soltar + dibujo personalizado en Android
android.database.SQLException
es una excepción de tiempo de ejecución.
En java no es necesario capturar o declarar tiros para excepciones de tiempo de ejecución. Leer una descripción detallada sobre RuntimeExceptions
en java aquí
- Diseño similar a WhatsApp para multilines EditText y botones junto a él
- Protección contra la reflexión – android