Kivy 简明教程
Kivy - Miscellaneous
Kivy - Exception Handling
在编程中,异常处理是指防止程序在遇到运行时错误时崩溃的机制。Kivy 提供了一个名为 ExceptionHandler 的类来管理 Kivy 或你自己的代码引发的异常。
ExceptionManager 类在“kivy.base”模块中定义。你需要从“kivy.base”导入它并访问处理 Kivy 异常的实例。可以使用此类为不同类型的异常添加自定义处理方法,或者当异常发生时覆盖 Kivy 的默认行为。例如,可以使用 handle_exception 方法记录异常、向用户显示消息或优雅地退出应用程序。
from kivy.base import ExceptionHandler, ExceptionManager
from logging import Logger
class handler(ExceptionHandler):
def handle_exception(self, inst):
Logger.exception('Exception caught by ExceptionHandler')
return ExceptionManager.PASS
ExceptionManager.add_handler(handler())
一个以异常作为参数并返回以下某个值的处理函数 −
-
ExceptionManager.PASS − 异常应被忽略,因为它已由处理程序处理。
-
ExceptionManager.RAISE − 异常应被重新引发。
-
ExceptionManager.USER_HANDLED − 异常已由用户处理,不应记录。
还可以使用 handle_exception 方法通过已注册的处理程序来手动处理异常。
Kivy - Resources Management
“kivy.resources”模块包括跨路径列表搜索特定资源的功能,尤其是在应用程序处理多个路径和项目时。
当 Kivy 查找图像文件或“kv”文件等任何资源时,它会搜索一组预定的文件夹。可以使用 resource_add_path() 和 resource_remove_path() 函数修改此文件夹列表。
如果你想对默认的 style.kv 或 data/defaulttheme0.png 使用任何备选方案,可以通过 resource_add_path() 方法添加所偏好备选方案的路径。
以下函数定义在“kivy.resources”模块中 −
-
resource_add_path(path) − 添加要进行搜索的自定义路径。
-
resource_find(filename, use_cache=False) − 在路径列表中搜索资源。搜索结果会缓存 60 秒。可以使用 use_cache=False 禁用此功能。
-
resource_remove_path(path) − 移除搜索路径。