我在我的 Vala 应用程序中使用 Glib.Settings。而且我想确保即使架构或密钥不可用,我的程序也能正常工作。所以我添加了一个 try/catch 块,但如果我使用不存在的密钥,程序会出现段错误。据我了解,它甚至没有达到 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)所以你能建议我哪里错了吗?