当前位置: 首页 > 知识库问答 >
问题:

冒出一个异常:Java[duplicate]

石正卿
2023-03-14

所以我有一个方法,如果发生异常,我想在该方法中重试操作。如果第二次发生异常,我希望在另一个类调用该方法的地方捕获异常。这是正确的做法吗?

    public OAuth2AccessToken getAccessTokenWithRefreshToken  (String refreshToken) throws OAuth2AccessTokenErrorResponse, IOException, InterruptedException ,ExecutionException  {
    try {
        System.out.println("trying for the first time");
        OAuth2AccessToken mAccessToken = mOAuthService.refreshAccessToken(refreshToken);
        return mAccessToken;
     catch (IOException | InterruptedException | ExecutionException e) {
        try {
            System.out.println("trying for the second time");
            OAuth2AccessToken mAccessToken = mOAuthService.refreshAccessToken(refreshToken);
        }  catch (IOException | InterruptedException | ExecutionException e2) {
            // TODO Auto-generated catch block
            e2.printStackTrace();
            throw e2;
        }
    }
    return mAccessToken;
}

共有1个答案

刘安志
2023-03-14

最好使用循环,为了不重复自己:

public OAuth2AccessToken getAccessTokenWithRefreshToken  (String refreshToken) throws OAuth2AccessTokenErrorResponse, IOException, InterruptedException ,ExecutionException {
    int maxAttempts = 2;
    int attempt = 0;
    while (attempt < maxAttempts) {
        try {
            return mOAuthService.refreshAccessToken(refreshToken);
        }
        catch (IOException | InterruptedException | ExecutionException e) {
            attempt++;
            if (attempt >= maxAttempts) {
                throw e;
            }
        }
    }
    return null; // or throw an exception - should never be reached
}
 类似资料:
  • 抛出异常的行为是否可能抛出不同的异常? 为了抛出异常,必须(可选地)分配新对象,并调用其构造函数(隐式调用fillinstacktrace)。在某些情况下,听起来像addSupressed也被称为。那么如果没有足够的内存会发生什么呢?JVM是否需要预分配内置异常?例如,(1/0)会抛出OutOfMemoryError而不是ArithmeticException吗? 此外,构造函数是一个方法调用,因

  • 问题内容: 我目前正在使用play2框架。 我有几个正在抛出的类,但是play2s全局处理程序使用throwable而不是异常。 例如我的一门课是抛出一个。我是否可以检查可抛物体(如果是)? 问题答案: 您可以使用它来检查它是否存在。 例: 假设是参考。

  • 我正在学习spring.io教程。有一个函数是这样的:

  • 本文向大家介绍用java写一个冒泡排序?相关面试题,主要包含被问及用java写一个冒泡排序?时的应答技巧和注意事项,需要的朋友参考一下 考察点:冒泡排序    

  • 我需要从java调用scala代码,因此需要告诉编译器某个方法抛出某些异常。对于一个异常很容易做到这一点,但是我很难声明一个方法抛出多个异常。 这不起作用:

  • 本文向大家介绍浅谈十个常见的Java异常出现原因,包括了浅谈十个常见的Java异常出现原因的使用技巧和注意事项,需要的朋友参考一下 异常是 Java 程序中经常遇到的问题,我想每一个 Java 程序员都讨厌异常,一 个异常就是一个 BUG,就要花很多时间来定位异常问题。 1、NullPointerException 空指针异常,操作一个 null 对象的方法或属性时会抛出这个异常。具体看上篇文章: