2015-10-31 2 views
2

Я начал мигрировать свои приложения Django, чтобы использовать модуль watson-developer-cloud, и во время выполнения модульных тестов отметили, что служба при определенных условиях создала исключение. Исключением оказалось исключение WatsonException, которое я теперь кодирую, но задавался вопросом, будет ли это единственным исключением, которое будет выбрано. В настоящее время мой код выглядит так:Какие исключения выбрасываются из модуля куба watson-developers-cloud

from watson_developer_cloud import LanguageTranslationV2 as LanguageTranslation 
from watson_developer_cloud import WatsonException 
... 
try: 
    language_translation = LanguageTranslation(username='xxxx', 
              password='yyy') 

    languages_detected = language_translation.identify(data)            ... 

except WatsonException as err: 
    ...  

Мой вопрос в том, достаточно ли этого, чтобы охватить все условия ошибки?

+0

Каково ваше намерение в отношении покрытия всех ошибок? Что делать, если в библиотеке есть ошибка, из-за которой она вызывает другую ошибку - как вы ее справляетесь? Почему бы просто не поймать «Исключение»? –

+0

Согласен Я могу добавить catch, но есть определенные действия, которые приложение может принять, когда исключение известно. Например, если служба отключена, это можно либо сообщить об этом, либо отключить функцию как недоступную. – chughts

ответ

2

Существуют два исключения:

class WatsonException(Exception): 
    """Generic exception class.""" 
    pass 

и

class WatsonInvalidArgument(Exception): 
    """A parameter to a function or methods was invalid""" 
    pass 
  • WatsonInvalidArgument: только создается, когда вы пытаетесь вызвать API с недопустимыми параметрами; поэтому перед вызовом API.

  • WatsonException: обычно генерируется из HTTP 401, 403, 500, 503 и т. Д. Ошибки, возникающие из службы или базового соединения.

Смежные вопросы