如何在八度音程中的.oct文件中抛出异常?

时间:2015-01-06 07:08:35

标签: exception error-handling octave

我目前正在开发geotiff使用.oct文件读取和编写八度音程的函数。我浏览了八度文档,但在抛出异常时找不到多少。这是否意味着我可以通过简单地写throw“错误消息”来抛出我在C ++中执行异常的异常?

2 个答案:

答案 0 :(得分:1)

是的,您可以使用类似

的内容
error ("mynewlib: Hello %s world!", "foo");

表示捕获和查看的错误。

(就我个人而言,我认为这些问题应该转到GNU Octave邮件列表,在那里您可以找到核心开发人员和octave-forge软件包维护者。)

我想你想围绕libgeotiff构建一个包装器?看看octave-image包!你在哪里托管你的代码?

./ examples / code / unwinddemo.cc也可能对您有意义。它显示了如何使用unwind_protect并定义用户错误处理程序。

http://hg.savannah.gnu.org/hgweb/octave/file/3b0a9a832360/examples/code/unwinddemo.cc

也许你的函数应该合并到octave-forge映射包中:" http://sourceforge.net/p/octave/mapping/ci/default/tree/"

答案 1 :(得分:1)

有两种方法,诚然,它们被记录在两个完全独立的地方,没有交叉链接/交叉引用,这没有任何意义,如果你不知道函数/关键字,你将找不到它们:

  • error() 会引发错误,从而停止程序。请参阅12.1 Raising Errors

    error("[%s] Here be wyrms", pkgname)

  • assert() 都测试条件然后使用可自定义的消息引发error()(所以不要if (cond) ... error(...) ... endif)。 请参阅B.1 Test Functions

    % 1. Produce an error if the specified condition is zero (not met).
    assert (cond) assert (cond, errmsg) assert (cond, errmsg, …) assert (cond, msg_id, errmsg, …)

    % 2a. Produce an error if observed (expression) is not the same as expected (expression); Note that observed and expected can be scalars, vectors, matrices, strings, cell arrays, or structures.
    assert (observed, expected)

    % 2b. a version that includes a (typically floating-point) tolerance assert (observed, expected, tol)

  • 另请参阅命令 fail()