gpt4 book ai didi

vala - 在 Vala 中使用 Glib.Settings 时如何处理错误?

转载 作者:行者123 更新时间:2023-12-01 02:13:55 27 4
gpt4 key购买 nike

我在 Vala 应用程序中使用 Glib.Settings。我想确保即使模式或 key 不可用,我的程序也能正常工作。所以我添加了一个 try/catch 块,但是如果我使用不存在的 key ,程序就会出现段错误。据我了解,它甚至没有达到 catch 语句。
这是使用设置的函数:

GLib.Settings settings;
string token = "";
try
{
settings = new GLib.Settings (my_scheme);
token = settings.get_string("token1");
}
catch (Error e)
{
print("error");
token = "";
}
return token;

程序输出是:
(main:27194): GLib-GIO-ERROR **: Settings schema 'my_scheme' does not contain a key named 'token1'
Trace/breakpoint trap (core dumped)

(当然,我使用的是真正的方案字符串而不是 my_scheme)
所以你能告诉我我错在哪里吗?

最佳答案

GLib.Settings中的方法,包括 get_string不要抛出异常,它们调用 abort图书馆内。这不是一个理想的设计,但您对此无能为力。

在这种情况下,正确的做法是修复您的架构,安装到 /usr/share/glib-2.0/schemas并运行 glib-compile-schemas在该目录上(以 root 身份)。

Vala 只有检查过的异常,因此,与 C# 不同,方法必须声明它将抛出,否则不可能这样做。您可以随时仔细检查 Valadoc 或 VAPI 以查看。

关于vala - 在 Vala 中使用 Glib.Settings 时如何处理错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26742567/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com