Python try except-在错误变量中包含自定义消息

Python try except-在错误变量中包含自定义消息,python,try-except,Python,Try Except,我试着做一个简单的尝试,除了,它是工作。但是我想在错误消息的开头添加一些自定义字符串。如果我只是在打印中添加它,它的给定错误 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

我试着做一个简单的尝试,除了,它是工作。但是我想在错误消息的开头添加一些自定义字符串。如果我只是在打印中添加它,它的给定错误

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
回溯(最近一次呼叫最后一次):
get_数据类型映射中的文件“c:/Users/rbhuv/Desktop/code/bqshift.py”,第22行
使用open('./datatype-mapping/file.json')作为rs_映射:
FileNotFoundError:[Errno 2]没有这样的文件或目录:'./数据类型映射/file.json'
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“c:/Users/rbhuv/Desktop/code/bqshift.py”,第102行,在
main()
文件“c:/Users/rbhuv/Desktop/code/bqshift.py”,第99行,在main中
目标映射()
文件“c:/Users/rbhuv/Desktop/code/bqshift.py”,第39行,在目标映射中
数据映射=获取数据类型映射()
get_数据类型映射中的文件“c:/Users/rbhuv/Desktop/code/bqshift.py”,第26行
打印('错误:'+错误)
TypeError:只能将str(而不是“FileNotFoundError”)连接到str

但是如果我只使用
print(error)
,这是有效的。

您需要将
error
转换为
str

导入系统 尝试: int(“失败”) 除异常作为错误外: 打印('自定义错误:'+str(错误)) 系统出口(1)
Python没有类型强制的概念,这就是为什么将
异常
连接到
str
不会使
异常
变成字符串的原因。