所以我有一个方法,如果发生异常,我想在该方法中重试操作。如果第二次发生异常,我希望在另一个类调用该方法的地方捕获异常。这是正确的做法吗?
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;
}
最好使用循环,为了不重复自己:
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 对象的方法或属性时会抛出这个异常。具体看上篇文章: