如何处理Dropbox java API中的错误

如何处理Dropbox java API中的错误,java,dropbox-api,Java,Dropbox Api,在尝试开发与某些云服务交互的应用程序时,我发现Dropbox API for Java尤其令人困惑 特别是如何查找HTTP错误。例如,使用GoogleDrive API,如果请求失败,将抛出IOException,但是您可以将该IOException解析为GoogleJsonResponseException,然后提取状态代码 try { File f =drive.files().create(fileMetadata).setFields("id").execute(); r

在尝试开发与某些云服务交互的应用程序时,我发现Dropbox API for Java尤其令人困惑

特别是如何查找HTTP错误。例如,使用GoogleDrive API,如果请求失败,将抛出IOException,但是您可以将该IOException解析为GoogleJsonResponseException,然后提取状态代码

try {
    File f =drive.files().create(fileMetadata).setFields("id").execute();
    return f.getId();
} catch (IOException e) {
    if (e instanceof GoogleJsonResponseException){
          int statusCode = ((GoogleJsonResponseException) e).getStatusCode();
          errorHandler(statusCode);
   } else {
       e.printStackTrace();
   }
}
java dropbox API(特别是3.0.5)中也有类似的东西。
我一直在环顾四周,似乎没有,但我想在我进入上述极为专业化和复杂的编码的兔子洞之前确定一下。如果是,请有人给我举个例子,说明我如何正确处理这些例外情况。

[参考交叉链接:]

Dropbox Java SDK自动将HTTPS响应中的结构化错误数据解析为本机类,您可以根据需要使用任意多或少的特定性。结构化错误响应(通常在响应体中是JSON)提供的粒度远远超过状态代码

例如,下面是您链接到的StackOverflow文档中缺少的代码示例:

try {
    SharedLinkMetadata sharedLinkMetadata = client.sharing().createSharedLinkWithSettings("/test.txt");
    System.out.println(sharedLinkMetadata.getUrl());
} catch (CreateSharedLinkWithSettingsErrorException ex) {
    System.out.println(ex);
} catch (DbxException ex) {
    System.out.println(ex);
}
这说明了如何检查特定的错误情况(即,该示例中的“路径”错误)


这是处理这些异常的推荐方法。我不相信SDK提供了检索原始未解析错误响应的方法。(如果你不想使用SDK,你可以直接打电话给自己。)

catch
-块中的
异常
上有一个
instanceof
是不好的风格。为
GoogleJsonResponseException
编写一个自己的
catch
-块会更干净。我知道有一天我会再次检查我的代码,这只是它的第二次修订版。你读过文档了吗?我读过,但我不理解,或者如何从这些异常中获得有意义的错误,下面是我试图处理的一个错误,您可以从
catch(ListFolderErrorException e)
开始,然后我如何从DbxException中获得更具体的错误,如RetryException我在这里找到了它:谢谢您的回答