使用 'themoviedbapi' 包装器在 TMDB API 上使用响应状态代码进行异常处理
Exception handling with Response Status codes on TMDB API using 'themoviedbapi' wrapper
我在使用包装器 'themoviedbapi' 抓取 TMDB 数据时遇到了一些问题。
我写了一个测试 class 看看,当我想将那些 json 响应放入数据库时会发生什么。
因此,当我点击一个未被占用的 ID 时,我收到了以下消息:
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生锈了,请问怎么处理?我正在考虑 try&catch,但如果有任何好的建议,我将不胜感激!
到目前为止,这是我的代码:
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){
}
}
}
使用 try catch 是一个很好的方法。我不知道这个 API 但你可以检查 catch 中的错误代码来决定下一步要做什么。
如果您真的想确定错误来自特定行,我建议您像这样修改 try/catch :
// ..
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;
}
// ...
我在使用包装器 'themoviedbapi' 抓取 TMDB 数据时遇到了一些问题。
我写了一个测试 class 看看,当我想将那些 json 响应放入数据库时会发生什么。
因此,当我点击一个未被占用的 ID 时,我收到了以下消息:
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生锈了,请问怎么处理?我正在考虑 try&catch,但如果有任何好的建议,我将不胜感激!
到目前为止,这是我的代码:
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){
}
}
}
使用 try catch 是一个很好的方法。我不知道这个 API 但你可以检查 catch 中的错误代码来决定下一步要做什么。
如果您真的想确定错误来自特定行,我建议您像这样修改 try/catch :
// ..
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;
}
// ...