我正在玩AWS Translate。当我发送TranslateTextAsync请求时,我希望AWS Translate自动检测源语言。显然,可能存在一个DetectedLanguageLowConfidenceException,我想通过从异常中获取DetectedLanguageCode并重试转换来处理该异常。我无法使此异常发生,因此我不知道该响应异常的结构。
对于Java SDK,我发现有一个“ getDetectedLanguageCode”函数,但是.NET SDK中不存在此函数。我正在使用AWSSDK.Translate v3.3.101.12。
如何从DetectedLanguageLowConfidenceException中获取语言代码?
我联系了AWS支持,他们联系了他们的AWS Translate团队。他们写道
C#/。Net不像Java那样支持成员变量。但是,有关异常的补充信息存储在异常的数据字典中
[他们还提到,AWS Translate通常会在抛出DetectedLanguageLowConfidenceException之前甚至使用低置信度猜测,因此似乎我们不必为此担心。
我仍然去实现异常处理,并使用以下代码来提取检测到的语言代码数据。这段代码未经测试:
catch (DetectedLanguageLowConfidenceException ex)
{
var dictionary = ex.Data as Dictionary<object, object>;
var detectedLanguageCode = dictionary?["DetectedLanguageCode"] as string;
// Retry here with the detected low confidence language code.
}