有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用“themoviedbapi”包装器在TMDB API上使用响应状态代码处理java异常

我在使用包装器“themoviedbapi”对TMDB的数据进行爬网时遇到了一些问题

我编写了一个测试类,看看当我想把这些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已经生锈了,你能告诉我怎么处理吗?我在考虑尝试&;明白了,但我会很感激任何好的建议

以下是我目前的代码:

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){
        }

    }

}

共 (1) 个答案

  1. # 1 楼答案

    使用试捕是一种很好的方法。我不知道这个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;
    }
    
    // ...