首页 > 解决方案 > 如何将每个引发的错误重定向到弹出窗口?

问题描述

目标:将错误重定向到一个独特的弹出窗口,该弹出窗口将在 kivy 应用程序而不是终端上显示错误。它可以防止应用程序崩溃并向用户显示他可以给我调试应用程序的错误消息。

GUESS:这是一个关于如何做到这一点的 mvp,但如果不每次都对其进行编码,我不知道如何解决大部分错误。

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.popup import Popup

KV = '''
BoxLayout:
    Label:
        text: "name"
'''

class MyApp(App):
   def build(self):
       box = Builder.load_string(KV)
       try:
           int("za")
       except Exception as e:
           MyPopup(title=str(e), size_hint=(0.5, 0.5))
       return box

class MyPopup(Popup):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.open()

if __name__ == "__main__":
   MyApp().run()

标签: pythonexceptionkivy

解决方案


你真的不能。捕获所有异常的唯一方法是“try-except” MyApp.run() 方法。由于多种原因,这不起作用。

在开发我的应用程序时,我实际上遇到了同样的问题。我只是通过将几乎所有代码分成函数并“尝试排除”我知道可能失败的代码来解决它,比如用户输入、计算机视觉的东西等。(基本上任何需要输入的东西,那不是硬编码。)


推荐阅读