Skip to content

Commit 1606012

Browse files
authored
Merge pull request #224 from lancedfr/improve_exception_handling
Improve exception handling
2 parents d3d30c1 + f5eea7b commit 1606012

11 files changed

Lines changed: 183 additions & 11 deletions

src/main/java/com/xero/api/XeroApiException.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
import java.util.HashMap;
66
import java.util.Map;
77

8-
public class XeroApiException extends RuntimeException {
8+
public class XeroApiException extends XeroException {
99

1010
private static final long serialVersionUID = 1L;
1111
private final int responseCode;
1212
private String message;
1313
private Map<String, String> messageMap = new HashMap<String, String>();
1414
private Error error;
15-
15+
1616
// LEGACY ERROR HANDLER
1717
public XeroApiException(int responseCode) {
1818
super(responseCode + " response.");
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.xero.api;
2+
3+
/**
4+
* Base authentication exception all other Xero authentication exceptions should extend.
5+
*/
6+
public class XeroAuthenticationException extends XeroException {
7+
private static final long serialVersionUID = -6292824871010327632L;
8+
9+
public XeroAuthenticationException(final String message) {
10+
super(message);
11+
}
12+
}

src/main/java/com/xero/api/XeroBadRequestException.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
import java.util.List;
55
import java.util.Objects;
66

7-
import com.fasterxml.jackson.annotation.JsonProperty;
87
import com.xero.models.accounting.Element;
9-
import com.xero.models.accounting.Employees;
108
import com.xero.models.assets.FieldValidationErrorsElement;
119
import com.xero.models.bankfeeds.FeedConnection;
1210
import com.xero.models.bankfeeds.FeedConnections;
@@ -15,7 +13,7 @@
1513

1614
import io.swagger.annotations.ApiModelProperty;
1715

18-
public class XeroBadRequestException extends RuntimeException {
16+
public class XeroBadRequestException extends XeroException {
1917

2018
private static final long serialVersionUID = 1L;
2119
private Integer statusCode;
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.xero.api;
2+
3+
/**
4+
* Base application exception all other Xero exceptions should extend.
5+
*/
6+
public class XeroException extends RuntimeException {
7+
8+
private static final long serialVersionUID = 1708393240501381142L;
9+
10+
public XeroException() {
11+
}
12+
13+
public XeroException(final String message) {
14+
super(message);
15+
}
16+
17+
}

src/main/java/com/xero/api/XeroForbiddenException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.xero.api;
22

3-
public class XeroForbiddenException extends RuntimeException {
3+
public class XeroForbiddenException extends XeroAuthenticationException {
44

55
private static final long serialVersionUID = 1L;
66
private int statusCode = 0;

src/main/java/com/xero/api/XeroMethodNotAllowedException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import io.swagger.annotations.ApiModelProperty;
1616

17-
public class XeroMethodNotAllowedException extends RuntimeException {
17+
public class XeroMethodNotAllowedException extends XeroException {
1818

1919
private static final long serialVersionUID = 1L;
2020
private Integer statusCode;

src/main/java/com/xero/api/XeroNotFoundException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.xero.api;
22

3-
public class XeroNotFoundException extends RuntimeException {
3+
public class XeroNotFoundException extends XeroException {
44

55
private static final long serialVersionUID = 1L;
66
private int statusCode = 0;

src/main/java/com/xero/api/XeroRateLimitException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.xero.api;
22

3-
public class XeroRateLimitException extends RuntimeException {
3+
public class XeroRateLimitException extends XeroException {
44

55
private static final long serialVersionUID = 1L;
66
private int statusCode = 0;

src/main/java/com/xero/api/XeroServerErrorException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.xero.api;
22

3-
public class XeroServerErrorException extends RuntimeException {
3+
public class XeroServerErrorException extends XeroException {
44

55
private static final long serialVersionUID = 1L;
66
private int statusCode = 0;

src/main/java/com/xero/api/XeroUnauthorizedException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.xero.api;
22

3-
public class XeroUnauthorizedException extends RuntimeException {
3+
public class XeroUnauthorizedException extends XeroAuthenticationException {
44

55
private static final long serialVersionUID = 1L;
66
private int statusCode = 0;

0 commit comments

Comments
 (0)