2017-01-23 3 views
0

У меня возникли проблемы с использованием обертки «themoviedbapi» для обхода данных TMDB.Обработка исключений с кодом состояния ответа в API TMDB с использованием обертки 'themoviedbapi'

Я написал тестовый класс, чтобы увидеть, что может произойти, когда я хочу поместить эти ответы json в db.

Так, при ударе идентификатор, который не принимается, я получил следующие сообщения:

Exception in thread "main" ResponseStatus{code=34, message=The resource you requested could not be found.} 
at info.movito.themoviedbapi.AbstractTmdbApi.mapJsonResult(AbstractTmdbApi.java:78) 
at info.movito.themoviedbapi.AbstractTmdbApi.mapJsonResult(AbstractTmdbApi.java:45) 
at info.movito.themoviedbapi.AbstractTmdbApi.mapJsonResult(AbstractTmdbApi.java:40) 
at info.movito.themoviedbapi.TmdbMovies.getMovie(TmdbMovies.java:60) 
at tmdb_api_to_db.Test.main(Test.java:21) 

В моей Java ржавый, как ад, не могли бы вы сказать мне, как справиться с этим? Я думал о пробке &, но я был бы признателен за любой хороший совет!

Вот мой код до сих пор:

package tmdb_api_to_db; 

import org.apache.commons.httpclient.HttpException; 
import info.movito.themoviedbapi.TmdbApi; 
import info.movito.themoviedbapi.TmdbMovies; 
import info.movito.themoviedbapi.model.Credits; 
import info.movito.themoviedbapi.model.MovieDb; 

public class Test { 


public static void main(String[]args){ 

    int movieID = 1; 

    try{ 

    TmdbMovies movies = new TmdbApi("###########").getMovies(); 
    MovieDb movie_name = movies.getMovie(movieID, "en"); 
    Credits movie_credits = movies.getCredits(movieID); 

    System.out.println(movie_name); 
    System.out.println(movie_credits.getCast()); 
    System.out.println(movie_credits.getCrew()); 
    System.out.println(movie_credits.getGuestStars()); 
    System.out.println(prettyJsonString); 
    }catch(XX){ 
     } 

    } 

} 

ответ

0

Использование попробовать поймать хороший подход. Я не знаю об этом API, но вы можете проверить код ошибки в catch, чтобы решить, что делать дальше.

Если вы действительно хотите, чтобы убедиться, что ошибка происходит из определенной линии я хотел бы предложить вам изменить ваш TRY/поймать, как это:

// .. 

TmdbMovies movies = new TmdbApi("###########").getMovies(); 
MovieDb movie_name; 
try{ 
    movie_name = movies.getMovie(movieID, "en"); 
}catch(Throwable e){ 
    System.err.println("Erreur getting movie #"+movieID); 
    return; 
} 

// ... 
+1

Спасибо! Это именно то, что я искал! :) Редактировать: Извините, не могу проголосовать, так как моя репутация низкая :( – pallox