Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Para la clase titulo, en el constructor, el runtime sigue dando un error a pesar de usar el substring

Cuando se usa el .subString(0,2), en el runtime, hace que si hay una pelicula con un valora de tres digitos no funcione y con 3 tampoco, salta un error, entonces intente lo siguiente pero quisiera saber como se puede solucionar.

this.duracionEnMinutos = Integer.valueOf(miTituloOmdb.runtime().substring(0,2));

Por ejemplo con matrix funciona. con matrix funciona

sin embargo con avatar. Aparecen dos digitosahora si cambiamos el substring de .substring(0,2) a .substring(0,3), se arreglaria para el caso de avatar pero se dañaria para el caso de matrix.

this.duracionEnMinutos = Integer.valueOf(miTituloOmdb.runtime().substring(0,3));

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

por lo que planteé dividir el el String Runtime con .split() de la siguiente manera y de momento no me ha dado errores.

public Titulo(TituloOmdb miTituloOmdb) {
        this.nombre = miTituloOmdb.title();
        this.fechaDeLanzamiento = Integer.valueOf(miTituloOmdb.year());

        String runtime = miTituloOmdb.runtime();
        String[] separadoTodo = runtime.split(" ");
        String valorRuntime = separadoTodo[0];

        this.duracionEnMinutos = Integer.valueOf(valorRuntime);
    }
1 respuesta

¡Hola Jeronimo, espero que estés bien!

Entiendo que estás teniendo problemas con el manejo de la duración de las películas al consumir la API en Java. Por lo que veo, has intentado utilizar el método substring para obtener la duración de las películas, pero te has encontrado con problemas al tratar con películas que tienen un número de dígitos diferente. Me alegra que hayas encontrado una solución utilizando el método split para dividir el String runtime y obtener el valor que necesitas.

Tu solución utilizando split parece ser una buena forma de abordar el problema, ya que te permite manejar de manera más flexible la duración de las películas, independientemente de la cantidad de dígitos. Es importante tener en cuenta que, al trabajar con datos provenientes de una API, es fundamental considerar diferentes escenarios y manejarlos de manera adecuada, tal como has hecho al adaptar tu código para manejar distintos formatos de duración.

En cuanto al manejo de excepciones, veo que estás trabajando en el manejo de errores al consumir la API y estás utilizando bloques try-catch para manejar diferentes tipos de excepciones. Es importante tener en cuenta que el manejo de excepciones es fundamental para garantizar la robustez y confiabilidad de tu aplicación.

Si en el futuro te encuentras con la necesidad de crear tus propias excepciones para manejar situaciones específicas, ten en cuenta que Java te brinda la posibilidad de crear tus propias clases de excepción personalizadas, lo cual puede ser útil para manejar situaciones particulares de manera más específica.

Espero que esta información te sea de ayuda. ¡Sigue adelante con tu aprendizaje en Java y no dudes en consultar si tienes más preguntas!

Espero haber ayudado y buenos estudios!