Python 如何将警告作为异常传递到函数之外,但不中断程序

Python 如何将警告作为异常传递到函数之外,但不中断程序,python,python-3.x,Python,Python 3.x,我有一个实现模型和视图的程序 我希望模型进行一些处理,如果出现问题,则向视图返回警告 现在,我希望将警告作为一种异常传递,因此如果我有一个GUI作为视图,我可以轻松创建一个消息框或类似的东西来显示警告,但不会中断程序流 我有什么办法可以做到这一点吗 注意:我知道Python中的警告模块,但我不知道是否可以将这些警告作为不中断程序流的异常传递 相关代码: 类模型(): 定义初始化(自): 尝试: 打开(某些文件)作为文件: self.file=file.readlines() 除FileNotFo

我有一个实现模型和视图的程序

我希望模型进行一些处理,如果出现问题,则向视图返回警告

现在,我希望将警告作为一种异常传递,因此如果我有一个GUI作为视图,我可以轻松创建一个消息框或类似的东西来显示警告,但不会中断程序流

我有什么办法可以做到这一点吗

注意:我知道Python中的
警告
模块,但我不知道是否可以将这些警告作为不中断程序流的异常传递

相关代码:

类模型():
定义初始化(自):
尝试:
打开(某些文件)作为文件:
self.file=file.readlines()
除FileNotFoundError外:
#我不希望模型在这里打印消息
#打印(“警告:找不到文件,继续默认设置”)
#我想向视图传递一个警告
self.file='某些数据'
raise FileNotFoundError(错误消息)
class视图():
定义初始化(自):
尝试:
self.model=model()
除FileNotFoundError外:
#我想在这里捕捉警告并显示它
#但如果我在这里发现一个异常,Python会抱怨
#self.model在稍后使用时未正确初始化

谢谢

异常用于委托错误处理,而不是与呼叫方通信。不要重新引发异常,而是向对象添加另一个属性,指示
文件
属性中的数据是否为硬编码

比如说,

class Model():

   def __init__(self):
      self.hard_coded = False
      try:
         with open(some_file) as file:
            self.file = file.readlines()
      except FileNotFoundError:
         self.source = True
         self.file = 'some piece of data'


class View():

   def __init__(self):
       self.model = Model()
       if self.hard_coded:
           print("Warning: File not found, continuing with defaults")

或者,您可以使用
error\u msg
属性,该属性的值为
None
或字符串,以便在视图不是
None

时对其进行打印。听起来,您需要的是
日志记录
以及在视图中显示日志的方法。