tl; dr Я использую try: ... except Exception as err: pass
, но код все равно останавливается, когда возникает исключение, даже если это не должно.
Я использую алгоритм преобразования в CSV. И одно из преобразований учитывает существование значений столбца в базе данных. Если его не существует, я выдаю исключение, подобное этому:
2019-05-15 16:36:37,095 - root - WARNING - The data in 'section_code' either doesn't exist in the raw data or hasn't been correctly encoded. The following strings caused the encoding error : '['398', 'die']'
Я знаю, что нехорошо использовать эту практику try: ... except: pass
, но я хочу, чтобы мой код продолжал преобразовывать файл, сохраняя только те сообщения об ошибках / предупреждениях, где они появляются.
Вот как мой код заключен в блок try...except
if __name__ == "__main__":
try:
# Initiate logger
logging.basicConfig(
level="DEBUG",
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# Business code ...
except FileNotFoundError as f_err:
logging.exception(f_err)
except AzureMissingResourceHttpError as az_err:
logging.exception(az_err)
except TypeError as t_err:
pass
logging.warning(t_err)
Итак, мой вопрос: почему оператор pass
не имеет требуемого эффекта и как мне реализовать это поведение?