異常處理
更新時間:
本節主要介紹V2.0 SDK的異常種類以及對于異常的處理。
V2.0 SDK將異常的種類進行了一定的細分,主要細分為以下幾個Exception:
TeaUnretryableException:該異常主要是因為網絡問題造成,一般是網絡問題達到最大重試次數后拋出,可以通過
exception.getLastRequest
來查詢錯誤發生時的請求信息。TeaException: 在SDK的請求中主要以業務報錯為主的異常,該異常的示例中提供了三個參數為用戶排查問題提供幫助:
code: OpenAPI業務報錯的錯誤碼。
message:OpenAPI業務報錯的錯誤信息,其中會包含本次請求的RequestId。
data:OpenAPI報錯后服務端返回的詳細信息。
重要
示例中僅做打印展示。請重視異常處理,切勿在項目中直接忽略異常。建議采取合理的措施來處理異常,比如合理地傳播異常、記錄日志、嘗試恢復等,以確保系統的健壯性和穩定性。
import com.aliyun.ecs20140526.models.DescribeRegionsRequest;
import com.aliyun.tea.TeaException;
import com.aliyun.tea.TeaUnretryableException;
import com.aliyun.tea.ValidateException;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
public class Sample {
public static void main(String[] args) throws Exception {
Config config = new com.aliyun.teaopenapi.models.Config();
// 從環境變量獲取RAM賬號的AccessKey ID
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
// 從環境變量獲取RAM賬號的AccessKey ID
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// 地域ID
config.setRegionId("<regionId>");
com.aliyun.ecs20140526.Client client = new com.aliyun.ecs20140526.Client(config);
DescribeRegionsRequest describeRegionsRequest = new DescribeRegionsRequest();
try {
client.describeRegions(describeRegionsRequest);
} catch(TeaUnretryableException ue) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
ue.printStackTrace();
// 打印錯誤信息
System.out.println(ue.getMessage());
// 打印請求記錄
System.out.println(ue.getLastRequest());
} catch (TeaException e) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
e.printStackTrace();
// 打印錯誤碼
System.out.println(e.getCode());
// 打印錯誤信息,錯誤信息中包含 RequestId
System.out.println(e.getMessage());
// 打印服務端返回的具體錯誤內容
System.out.println(e.getData());
}
}
}
文檔內容是否對您有幫助?