AXAPTA_Daily_Check对象无cnf属性报错,求代码问题排查
问题分析与解决
错误原因
AXAPTA_Daily_Check object has no attribute cnf 错误的核心原因是:self.cnf 仅在 try 代码块内被初始化。当读取配置文件过程中发生异常(比如文件不存在、权限不足、JSON格式错误等),except 块仅记录错误日志,但并未创建 self.cnf 属性。后续代码(比如 File_Name_Creation() 方法)尝试访问该属性时,就会触发属性不存在的错误。
修复方案
方案一:提前初始化默认值
在 try 块前给 self.cnf 设置一个默认值(比如空字典),确保无论读取是否成功,属性都存在:
class AXAPTA_Daily_Check: def __init__(self): # ... 其他初始化代码 ... # 提前初始化默认值,避免属性不存在 self.cnf = {} # Reading Config File... try: with open(os.path.join(Script_Path,'AXAPTA.conf'), 'r') as f: self.cnf = json.load(f) except Exception as e : logging.error("Error: {}".format(str(e))) self.File_Name_Creation()
方案二:若配置文件为必需,终止程序
如果配置文件是程序运行的必要条件,可以在异常块中直接终止程序,避免后续代码因缺少配置而报错:
import sys class AXAPTA_Daily_Check: def __init__(self): # ... 其他初始化代码 ... # Reading Config File... try: with open(os.path.join(Script_Path,'AXAPTA.conf'), 'r') as f: self.cnf = json.load(f) except Exception as e : logging.error("Error loading config file: {}".format(str(e))) sys.exit(1) # 终止程序 self.File_Name_Creation()
内容的提问来源于stack exchange,提问作者Sneha Nagaraj
相关产品推荐
相关产品推荐

