Python try except - Включить пользовательское сообщение в переменную ошибки - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь сделать простую попытку, но она работает. Но я хочу добавить некоторую настраиваемую строку в начало сообщения об ошибке. Если я просто добавлю его в печать, это даст ошибку.

import sys

try:
    with open('./datatype-mapping/file.json') as rs_mapping:
         data_mapping = json.load(rs_mapping)
except Exception as error:
        print('CUSTOM ERROR: '+error)
        sys.exit(1)

Полученная мной ошибка:

Traceback (most recent call last):
  File "c:/Users/rbhuv/Desktop/code/bqshift.py", line 22, in get_datatype_mapping
    with open('./datatype-mapping/file.json') as rs_mapping:
FileNotFoundError: [Errno 2] No such file or directory: './datatype-mapping/file.json'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:/Users/rbhuv/Desktop/code/bqshift.py", line 102, in <module>
    main()
  File "c:/Users/rbhuv/Desktop/code/bqshift.py", line 99, in main
    target_mapping()
  File "c:/Users/rbhuv/Desktop/code/bqshift.py", line 39, in target_mapping
    data_mapping = get_datatype_mapping()
  File "c:/Users/rbhuv/Desktop/code/bqshift.py", line 26, in get_datatype_mapping
    print('ERROR: '+error)
TypeError: can only concatenate str (not "FileNotFoundError") to str

Но если я использую только print(error) - это работает.

1 Ответ

1 голос
/ 03 августа 2020

Вам необходимо преобразовать error в str.

import sys

try:
  int("fail")
except Exception as error:
  print('CUSTOM ERROR: ' + str(error))
  sys.exit(1)

Это работает безупречно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...