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

2024-04-13

我在 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) 那么你能建议我哪里错了吗?


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

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

Vala 仅具有检查异常,因此与 C# 不同,方法must声明它将抛出,否则不可能这样做。您始终可以仔细检查 Valadoc 或 VAPI 来查看。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Vala 中使用 Glib.Settings 时如何处理错误? 的相关文章

  • 不支持链接到“Gtk.Box.new”

    我是 Vala 的新手 到目前为止我认为它很酷 但我在理解继承方面遇到了困难 我读here我应该使用base 调用父构造函数 好吧 很酷 似乎可以理解 但它对我不起作用 我一直收到标题上的错误 这是我要展示的片段 public class
  • Flatpak Meson 没有从 Gnome Builder 中找到 Vala 库

    在 Linux 中 我在 Gnome Builder 3 26 4 中使用 Meson 0 44 0 作为将使用 Gee 和 GXml 的控制台程序 我的目的是在 Genie 中写这个 当我在 Gnome Builder 中使用 Meson
  • Genie 中嵌套泛型类型的语法是什么?

    我想声明一个哈希表string因为它是关键并且array of int因为它的价值 indent 4 init var h new HashTable of string array of int str hash str equal h
  • 为什么这个函数返回一个(拥有的)值?

    代码 从 Genie 如何将字符串作为字符串数组重复 N 次Genie 如何将字符串作为字符串数组重复 N 次 def repeatwithsep e string n int separator string string var ele
  • 使用开罗绘制的画布填充自定义形状的杂波 Actor

    杂乱 1 12科格尔1 10Vala 或 C 或 Python 我在这里可能有一个根本性的误解 我认为 演员 是 3D 多边形的东西 我将它们的颜色视为顶点颜色或纹理映射 有鉴于此 我一直在尝试绘制一个自定义 Actor 并用通过 Cair
  • 如何修复警告:初始化程序周围缺少大括号?

    该警告是由vala 生成的c 代码产生的 警告 初始化程序周围缺少大括号 该代码可以工作 但警告很烦人 警告引用的vala代码是 struct Position uint x uint y private static Position p
  • 如何在GtkTreeview中用字符串和pixbuf制作一列?

    我正在使用 Gtk 2 的应用程序中工作 我需要实现一个文件树视图 实际的代码是 public FileTree store new TreeStore 2 typeof string typeof string this change d
  • 如何在anjuta项目中包含资源文件

    我正在尝试更新 vala 中的图形项目 将大量代码行移动到 ui 文件中 我想使用模板 可用于 glib 2 38 和 GTK 3 8 类似的东西 我的项目是用 Anjuta 和 autoconf 管理的 In the src目录有 app
  • 如何从 Vala 编译器生成 GIR 文件?

    我正在尝试使用 pygi 和 gobject introspection 创建到 vala 库的 python 绑定 但是 我在生成 GIR 文件时遇到问题 我计划随后将其编译为 typelib 文件 根据文档 valac 应该支持生成 G
  • Gee HashMap 包含方法作为值

    我正在尝试填充 Libgee HashMap 其中每个条目都有一个字符串作为键 一个函数作为值 这可能吗 我想要这样的东西 var keybindings new Gee HashMap
  • Vala:陷阱、提示和技巧

    作为一名刚接触 Vala 的程序员 您对刚接触该语言的人的第一条建议是什么 这很大程度上取决于您来自什么背景 如果您来自 C C Java 最好的建议是学习函数式编程 Vala 支持真正的闭包 因此您应该 深入 学习如何使用 lambda
  • 如何在 vapi 文件中编写 void 指针类型定义?

    我正在尝试编写一个 VAPI 文件来使用 unixODBC 其中一个函数被称为SQLAllocHandle From
  • 如何在 gtk 中将小部件作为不同的线程加载? (瓦拉)

    我创建了这个类 出于效率原因 我想将缩略图作为不同的线程加载到图标视图中 因为如果我在同一个线程中执行此操作 GUI 加载速度会非常慢 但是当我创建线程时 它不起作用 它绘制了一些缩略图 然后它们就消失了 当我使用 join 时 它有效 这
  • 使用 vala 将 uris 插入 Gtk.Clipboard

    我目前正在尝试为我的应用程序实现复制和粘贴 问题是我只能根据文档将纯文本或图像复制到剪贴板Gtk Clipboard https valadoc org gtk 3 0 Gtk Clipboard html https valadoc or
  • Vala:传递通用数组会破坏值

    如何将数组传递给通用函数 以下代码确实可以编译 但输出有些损坏 void foo
  • 在 Vala 中使用 Glib.Settings 时如何处理错误?

    我在 Vala 应用程序中使用 Glib Settings 我想确保即使架构或密钥不可用 我的程序也能正常工作 所以我添加了一个 try catch 块 但是如果我使用不存在的密钥 程序就会出现段错误 据我了解 它甚至没有到达 catch
  • Vala vapi 文件文档

    我想使用 Vala 破解现有的基于 GLib 的 C 项目 基本上我正在做的是 在构建过程开始时 使用 valac 从 vala 文件生成 c 和 h 文件 然后像编译任何 c 或 h 文件一样编译生成的文件 这可能不是最好的方法 但在大多
  • 如何在vala中使用gettext?

    当我尝试在 vala 中使用 gettext 时 我没有收到来自 vala 的错误或警告 但我从 c 编译器收到以下错误 usr include glib 2 0 glib gi18n lib h 29 2 error error You
  • 我如何将 C++ 与 VALA 混合起来

    我需要用 C 编写跨平台的 GUI 应用程序 但由于 C 的大多数 GUI 库都有点乏味 而且我对 C NET 非常熟悉 我发现使用 GTK 的代码 Vala 代码非常有趣 并且与其他方式相比有点容易 那么我该如何将 VAlA 与 C 混合
  • meld - GLib-GIO-ERROR**:系统上未安装 GSettings 架构

    经过近40个小时的努力 我终于安装了meld 3 14 2 在Redhat 6 3服务器的NFS共享上 安装了每个依赖项 最后似乎成功了 但最后一个错误需要解决 meld 20703 GLib GIO ERROR No GSettings

随机推荐

  • 将内容添加到pyqt4滚动区域

    如何将内容添加到 pyqt4 中的滚动区域 我要自定义一个小部件吗 例如 如果我有一个数组或一个列表a 10 2 2 2 22 3 3 3 我应该如何在可滚动区域中显示变量 如果要将内容添加到滚动区域 则需要定义一个新的小部件并将其添加到滚
  • 基于值的 R 颜色散点图点

    我能够绘制散点图并根据一个标准对点进行着色 即我可以将所有 gt 3 的点着色为红色 其余点着色为黑色 我希望能够以这种方式为点上色 3 color red 其余为黑色 下面的代码完成了步骤 1 和 3 但我不确定如何合并步骤 2 的第二个
  • 单元测试验证是否调用了伴生对象方法(模拟伴生对象)

    当切换到 Kotlin 时 静态方法被移至伴生对象中 但是 没有明显的方法来对调用这些 静态方法 的其他方法进行单元测试 在Java中 我们可以使用PowerMockito的MockStatic SomeClass class 来验证被测方
  • 如何确定应用程序是作为移动应用程序还是桌面应用程序运行?

    我怎样才能知道当前的应用程序类型是什么 即它是在移动设备上运行还是作为桌面 Air 应用程序运行 我试过这个 if FlexGlobals topLevelApplicatoin as WindowedApplication desktop
  • 如何在 mac osx 上的子进程中打开文件

    我想打开一个文件并等待下一条指令的执行 直到文件未关闭 我点击了链接如何在 mac OSX 10 8 2 上用 python 打开文件 https stackoverflow com questions 19273210 how to op
  • Internet Explorer 嵌套表单发布

    我正在使用 ASP NET MVC 创建一个发布到 Paypal 沙箱的页面 我发布到 Paypal 网站的表单嵌套在父表单内 我使用的是 Internet Explorer 7 由于某种原因 嵌套表单发布到我的本地计算机而不是 paypa
  • 从 jQuery 设置 $scope 变量的值

    我想从 jQuery 函数为 scope 中的变量设置一个值 如下代码所示 一切都很好 但新的价值体现在用户界面上 app controller myCtrl function scope scope carname Volvo sampl
  • 提取 R 中 lme4 模型随机效应的后验估计和可信区间

    我需要提取后验估计和间隔随机效应从我的模型 出于说明目的 与我正在使用的数据集类似的数据集是ChickWeight基础 R 中的数据集 我提取后验估计和区间的方式固定效应就像这样 load package library lme4 mode
  • Java - 将字符串(4 个字符)转换为 int 并返回的乐趣

    请不要问为什么 但我必须将字符串 最多 4 个字符 存储在整数值 因此 4 个字节 中 首先我写了这个并且它有效 String value AAA int sum IntStream range 0 value length limit 4
  • 与 UltraHD 兼容的 CHtmlView

    CHtmlView与 UltraHD 分辨率不兼容 实现 UltraHD 感知并不仅仅在于使用正确的 HTML CSS 打印预览机制失败并裁剪页面 许多个月前 微软承认这是一个问题 但没有解决它 我的应用程序大量使用CHtmlView用于显
  • 具有参数化脚本块的 PowerShell 函数

    我想创建一个枚举一些数据的 PowerShell 函数 并在所有出现的情况下触发脚本块 现在我已经 这不是实际的代码 但它说明了我的问题 function Invoke TenTimes CmdletBinding param Parame
  • discord.py send_message 用法

    我已经开始致力于一个项目来加速我对 python 的学习 我正在尝试重新创建一个我经常使用的不和谐机器人 因为我已经习惯了它的功能 下面是我当前的代码 import discord from discord import User from
  • 使用 Visual Studio 在线构建定义构建 SSIS 解决方案....dtproj 不受 MSBuild 支持,无法构建

    我通过 Visual Studio Online 创建了一个构建定义 用于构建 SSIS 项目 dtproj 构建似乎成功 但出现一条警告 指出 MSBuild 不支持 dtproj 无法构建 SSDT已安装在构建服务器上 有谁知道为什么会
  • Flask-后退按钮即使在注销后也会返回到会话

    我正在使用 Flask 创建一个需要登录和注销的网站 我正在使用 Flask Security 来帮助解决这个问题 我的问题是 注销后 如果点击后退按钮 我将返回到用户页面 有没有办法防止在退出后按 Flask 中的后退按钮返回会话 您可以
  • 通过Java运行cmd命令

    我发现了几个通过 Java 类运行 cmd 命令的代码片段 但我无法理解它 这是打开cmd的代码 public void excCommand String new dir Runtime rt Runtime getRuntime try
  • 当飞行模式打开时 CLLocationManager 如何获取位置

    我的应用程序使用 CLLocationManager 从设备获取位置更新 我曾假设当设备处于飞行模式时 我不会获得位置更新 但是我愿意 我之所以这么认为 是因为 Apple 表示飞行模式会关闭 Wifi 蜂窝网络 蓝牙和 GPS 看 htt
  • response.authResponse 为 null

    我编写了以下代码来检查 facebook 的登录状态 FB getLoginStatus function response if response status connected var user id response authRes
  • 为什么 XmlNodeList 是一次性的?

    我找不到这个问题的答案 只是出于好奇 为什么XmlNodeList 类 http msdn microsoft com en us library system xml xmlnodelist 28v vs 110 29 aspx在 NET
  • 如何使用 MsDeploy 设置 iisApp Provider 的部署路径?

    我正在为我的 Web 应用程序创建 Web 部署包 zip 文件 我发现我可以通过在打包站点期间包含 pubxml 并在构建期间使用 PublishProfile 属性来指定该配置文件来指定应用程序的站点名称 pubxml 有
  • 在 Vala 中使用 Glib.Settings 时如何处理错误?

    我在 Vala 应用程序中使用 Glib Settings 我想确保即使架构或密钥不可用 我的程序也能正常工作 所以我添加了一个 try catch 块 但是如果我使用不存在的密钥 程序就会出现段错误 据我了解 它甚至没有到达 catch