-
Notifications
You must be signed in to change notification settings - Fork 13
Open
Description
Consider breaking up the try-catch blocks here (and similar uses elsewhere) to:
- Isolate the source of an error
- Possibly log and then discard invalid proposal types
nsls2api/src/nsls2api/services/pass_service.py
Lines 75 to 88 in a2de1f8
| try: | |
| pass_proposal_types_list = await _call_pass_webservice(url) | |
| proposal_types = [] | |
| if pass_proposal_types_list and len(pass_proposal_types_list) > 0: | |
| for proposal_type in pass_proposal_types_list: | |
| proposal_types.append(PassProposalType(**proposal_type)) | |
| except ValidationError as error: | |
| error_message = f"Error validating data recevied from PASS for proposal type for the {facility} facility." | |
| logger.error(error_message) | |
| raise PassException(error_message) from error | |
| except Exception as error: | |
| error_message = "Error retrieving proposal types from PASS." | |
| logger.exception(error_message) | |
| raise PassException(error_message) from error |
For example:
try:
pass_proposal_types_list = await _call_pass_webservice(url)
except Exception as error:
error_message = "Error retrieving proposal types from PASS."
logger.exception(error_message)
raise PassException(error_message) from error
proposal_types = []
if pass_proposal_types_list and len(pass_proposal_types_list) > 0:
for proposal_type in pass_proposal_types_list:
try:
proposal_types.append(PassProposalType(**proposal_type))
except ValidationError as error:
error_message = f"Error validating data recevied from PASS for proposal type for the {facility} facility."
logger.error(error_message)
# raise PassException(error_message) from error Metadata
Metadata
Assignees
Labels
No labels