diff --git a/src/main/java/com/aliyun/tea/TeaException.java b/src/main/java/com/aliyun/tea/TeaException.java index c7aaf64..7d64514 100644 --- a/src/main/java/com/aliyun/tea/TeaException.java +++ b/src/main/java/com/aliyun/tea/TeaException.java @@ -11,6 +11,7 @@ public class TeaException extends RuntimeException { private static final long serialVersionUID = 1L; public String code; public String message; + public String detail; public Map data; public Integer statusCode; public String description; @@ -26,6 +27,7 @@ public TeaException(String message, Throwable cause) { public TeaException(Map map) { this.setCode(String.valueOf(map.get("code"))); + this.setDetail(String.valueOf(map.get("detail"))); this.setMessage(String.valueOf(map.get("message"))); this.setDescription(String.valueOf(map.get("description"))); if (map.get("accessDeniedDetail") instanceof Map) { @@ -75,6 +77,14 @@ public void setCode(String code) { this.code = code; } + public String getDetail() { + return detail; + } + + public void setDetail(String detail) { + this.detail = detail; + } + public Integer getStatusCode() { return statusCode; } diff --git a/src/test/java/com/aliyun/tea/TeaExceptionTest.java b/src/test/java/com/aliyun/tea/TeaExceptionTest.java index 344f2a3..4e6839e 100644 --- a/src/test/java/com/aliyun/tea/TeaExceptionTest.java +++ b/src/test/java/com/aliyun/tea/TeaExceptionTest.java @@ -16,9 +16,11 @@ private class TestClass { public void toTeaExceptionTest() { Map map = new HashMap<>(); map.put("code", "test"); + map.put("detail", "test detail"); map.put("message", "test"); TeaException exception = new TeaException(map); Assert.assertEquals("test", exception.getCode()); + Assert.assertEquals("test detail", exception.getDetail()); Assert.assertEquals("test", exception.getMessage()); Assert.assertNull(exception.getStatusCode()); @@ -79,6 +81,7 @@ public void toTeaExceptionTest() { public void baseTest() { TeaException exception = new TeaException("test massage", new RuntimeException("runtime exception")); Assert.assertNull(exception.getCode()); + Assert.assertNull(exception.getDetail()); Assert.assertNull(exception.getData()); Assert.assertNull(exception.getStatusCode()); Assert.assertEquals("test massage", exception.getMessage());