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