【问题标题】:Exit D Program in Static Constructor在静态构造函数中退出 D 程序
【发布时间】:2014-01-01 15:36:43
【问题描述】:

我有一个像这样的静态构造函数:

File errorLog;
static this() {
    try {
        errorLog = File("./log/log.txt", "w");
    } catch(Throwable ex) {
        // STOP PROGRAM EXECUTION
    }
}

打开文件失败时如何停止程序执行?

【问题讨论】:

  • 不是任何意义上的专家,但是import core.stdc.stdlib; 并使用exit(-1); 怎么样?
  • @JoachimIsaksson 这不会破坏 D 运行时。

标签: d exit static-constructor


【解决方案1】:

使用 core.runtime 终止运行时 http://dlang.org/phobos/core_runtime.html#.Runtime.terminate 并退出 core.stdc.stdlib

【讨论】:

  • 请注意,这将不会在您创建的东西上运行析构函数,例如位于堆栈上的结构。
  • @AdamD.Ruppe 有合适的方法吗?程序应该像 main 函数返回一样退出。
  • 不是真的,你能做的最好的就是抛出一个异常并让它展开堆栈。
  • 可能最好在这里甚至抛出Error来表明终止意图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-26
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
  • 2011-03-01
  • 2011-04-19
  • 2011-05-06
相关资源
最近更新 更多