12.2.1报警告

可以使用从任何代码报警告警告作用在其最简单的形式中警告函数将描述警告作为其输入参数。例如,以下代码控制变量是非负的,如果不是,则报警告并设置为零。

a=-1;if(a<0)警告(“'a'必须是非负的。将'a'设置为零。”);a=0;endif-|'a'必须为非负数。正在将“a”设置为零。

从于警告对正在运行的程序来说并不是致命的,因此不可能使用尝试语句或类似的东西。但是,可以使用最后警告作用

也可以将标识字符串赋值给警告。如果警告具有这样的ID,用户可以启用和禁用此警告,如下一节所述。要为警告赋值ID,只需调用警告有两个字符串参数,其中第一个是标识字符串,第二个是实际警告。请注意,警告ID的格式为NAMESPACE:WARNING-NAME.命名空间八度用于Octave自己的警告。任何其他可用作用户自己警告的命名空间的字符串。

 
: warning (template, …)
: warning (id, template, …)
: warning ("on", id)
: warning ("off", id)
: warning ("error", id)
: warning ("query", id)
: warning (state, id, "local")
: warning (warning_struct)
: warning_struct = warning (…)
: warning (state, mode)

显示警告消息或控制Octave的警告系统的行为。

第一个呼叫表单使用模板样板和可选的附加参数,以在上显示消息标准错误流动邮件的格式使用与相同的规则输出函数函数族(详见格式化输出)并以字符串'为前缀警告。当您想通知用户异常情况时,您应该使用此函数,但仅当您的程序启动时才有意义。例如:

警告(“foo:这里可能有问题”);

如果警告消息没有以换行符结束,Octave将打印导致警告的所有函数调用的回溯。如果警告消息确实以换行符结尾,Octave将在将控制权返回到顶级时抑制回溯消息。有关更多详细信息和示例,详见错误.

可选的警告标识符id允许用户启用或禁用此标识符符号的警告。消息标识符是表单的字符串NAMESPACE:WARNING-NAME。Octave自己的警告使用八度命名空间(详见警告_ids). 例如:

警告(“MyNameSpace:检查一些东西”,“foo:这里可能有问题”);

第二个调用表单用于更改和/或查询警告的状态。第一个输入参数必须是字符串状态(on,, 错误查询)后跟optionalwarning标识符id全部的默认

可选输出参数警告_结构体是具有字段的结构体或结构体数组状态标识符这个状态参数可能具有以下值:

on|:

启用或禁用从标识的警告的显示id并可选择返回其前一个状态粗壮的.

错误:

转向警告标识为id进入错误,并可选择返回其前一个状态粗壮的.

查询:

返回从标识的警告的当前状态id.

结构体或结构体数组警告_结构体,包含字段状态标识符,可以作为实现等效结果的输入。以下示例显示了如何临时禁用唤醒,然后恢复其原始状态:

日志(-1:10);##禁用上一个警告并保存其原始状态[~,id]=lastwarn();warnstate=警告(“关闭”,id);日志(-1:10);##恢复其原始状态警告(warnstate);

如果最后一个参数地方的则警告状态将被暂时困扰,直到当前函数结束。对本地设置的警告状态的更改会影响当前函数以及从当前范围扩展的所有函数。从当前函数返回时,将恢复前一个警告状态。这个地方的如果在顶级工作区中使用,则忽略参数。

没有输入参数警告相当于警告(“查询”、“全部”)除了在没有输出的情况下,警告的状态显示在上标准错误.

警告系统的详细程度也可以通过两种模式控制mode:

回溯:

启用/禁用警告消息后堆栈跟踪的显示

冗长的:

启用/禁用警告消息后的附加信息显示

在这种情况下状态自变量只能是on.

实施说明:为了与兼容MATLAB,中的转义序列样板(例如。,n=>换行符)被处理,而不考虑是否样板已经用单引号定义,只要有两个或多个输入参数即可。要禁用转义序列扩展,请在序列之前使用第二个反斜杠(例如。,n)或使用regexptranslate作用

详见: 警告_ids, 最后警告, 错误.

 
: [msg, msgid] = lastwarn ()
: lastwarn (msg)
: lastwarn (msg, msgid)

查询或设置最后一条警告消息。

当在没有输入参数的情况下调用时,返回最后一条警告消息和消息标识符。

使用一个参数,将最后一条警告消息设置为消息.

使用两个参数,还可以将最后一个消息标识符设置为消息ID.

详见: 警告, 最后一个错误, lasterr.

使用Octave分发的函数可以发出以下警告之一。

 
Octave:缩写属性匹配

如果Octave:缩写属性匹配如果指定对象属性的操作使用了不精确或不明确的匹配,则启用警告,并打印警告。例如对于图形对象,无花果,具有属性显示名称,get无花果,“dis”)如果Octave:缩写属性匹配警告已启用。默认情况下Octave:缩写属性匹配警告已启用。

Octave:addpath pkg

如果Octave:addpath pkg如果启用了警告,Octave将在向中添加包目录(即+package_name)时报警告路径。通常,只有包含包目录的父目录才应添加到加载路径中。默认情况下Octave:addpath pkg警告已启用。

八Octave:数组为逻辑

如果八Octave:数组为逻辑如果启用警告,则当大小大于1x1的数组用作if、while或until语句中的真值时,Octave将报警告。默认情况下八Octave:数组为逻辑警告被禁用。

Octave:数组到标量

如果Octave:数组到标量警告已启用,当尝试从数组到标量值的隐式转换时,Octave将报警告。默认情况下Octave:数组到标量警告被禁用。

Octave:数组到向量

如果Octave:数组到向量警告已启用,当尝试从数组到向量值的隐式转换时,Octave将报警告。默认情况下Octave:数组到向量警告被禁用。

Octave:指定为真值

如果Octave:指定为真值警告已启用,将对以下语句报警告

如果(s=t)。。。

因为这样的语句并不常见,而且很可能

如果(s==t)。。。

相反

有时,在的条件下编写包含签名的代码是有用的while如果语句例如,以下语句

而(c=getc())。。。

在C编程中很常见。

可以通过禁用Octave:指定为真值警告,但这也可能会让真正的错误

如果(x=1)#打算测试(x==1)。。。

溜走了。

在这种情况下,可以通过使用一组额外的括号来抑制特定语句的错误。例如,将上一个示例写成

while((c=getc()))。。。

将阻止为此语句打印警告,同时允许Octave警告条件上下文中使用的其他赋值。

默认情况下Octave:指定为真值警告已启用。

Octave:自动加载相对文件名

如果Octave:自动加载相对文件名如果已启用,Octave将在解析带有函数文件相对路径的autoload()函数调用时报警告。这种情况通常发生在PKG_ADD文件中使用autoload()调用时,当PKG_ADD与autoload(()命令所引用的.oct文件不在同一目录中时。默认情况下Octave:自动加载相对文件名警告已启用。

Octave:charmat截断

如果Octave:charmat截断如果启用了警告,则当具有多行的字符矩阵转换为字符串时会打印警告。在这种情况下,Octave解释器只保留第一行,而丢弃其他行。默认情况下Octave:charmat截断警告已启用。

Octave:到结构体的classdef

如果Octave:到结构体的classdef如果启用了警告,则当classdef对象被强制转换为具有的结构体时会报警告结构体(CLASSDEF_OBJ)。转换将删除对象的访问限制,并使私有和受保护的属性可见。默认情况下Octave:到结构体的classdef警告已启用。

Octave:冒号复杂参数

如果Octave:冒号复杂参数如果启用了warning,则当冒号运算符的三个参数之一(base、increment、limit)为复杂值时,将报警告。例如1:3*i将导致报警告。默认情况下Octave:冒号复杂参数警告已启用。

Octave:冒号非标量参数

如果Octave:冒号非标量参数如果启用了警告,则当冒号运算符的三个参数之一(base、increment、limit)不是标量时,将报警告。例如1:[3, 5]将导致报警告。默认情况下Octave:冒号非标量参数警告已启用。

Octave:路径中的数据文件

如果Octave:路径中的数据文件如果启用了警告,则当Octave未找到文件操作的目标时会报警告,例如加载fopen直接,但能够在Octave的搜索中找到文件路径对于文件。该警告可能表示使用了与程序员预期不同的文件目标。默认情况下Octave:路径中的数据文件警告已启用。

Octave:datevec:日期格式规范

如果Octave:datevec:日期格式规范如果启用警告,则如果日期格式规范包含有问题的日期或时间值,则会打印警告。典型的错误模式是使用大写的日期值或小写的时间值。默认情况下Octave:datevec:日期格式规范警告已启用。

Octave:不推荐使用的函数

如果Octave:不推荐使用的函数如果启用了警告,则当Octave遇到过时并计划从Octave中删除的函数时,将报警告。默认情况下Octave:不推荐使用的函数警告已启用。

Octave:不推荐使用的关键字

如果Octave:不推荐使用的关键字如果已启用警告,则当Octave遇到过时并计划从Octave中删除的关键字时,将报警告。默认情况下Octave:不推荐使用的关键字警告已启用。

Octave:不推荐使用的options

如果Octave:不推荐使用的options如果启用了警告,则在使用过时的参数或函数输入时会报警告。默认情况下Octave:不推荐使用的options警告已启用。

Octave:不推荐使用的属性

如果Octave:不推荐使用的属性如果启用警告,则当Octave遇到已过时并计划从Octave中删除的图形属性时,将报警告。默认情况下Octave:不推荐使用的属性警告已启用。

Octave:eigs:未收敛的特征值

如果Octave:eigs:未收敛的特征值如果计算的设计值的数量小于指定的特征值的数量,则启用警告,然后eigs函数将报警告。默认情况下Octave:eigs:未收敛的特征值警告已启用。

Octave:空索引

如果Octave:空索引如果启用警告,则每当在没有索引的情况下使用索引运算符时,Octave都会报警告x()。默认情况下Octave:空索引警告已启用。

八Octave:擦除:字符数组

如果八Octave:擦除:字符数组如果启用了warning,那么如果输入模式是字符数组而不是字符串或字符串元胞数组,则擦除函数将报警告。默认情况下八Octave:擦除:字符数组警告已启用。

Octave:函数名称冲突

如果Octave:函数名称冲突警告已启用,当Octave查找函数文件中定义的函数的名称与文件的名称不同时,将报警告。(如果名称不一致,则忽略文件中语句的名称。)默认情况下Octave:函数名称冲突警告已启用。

Octave:未来时间戳

如果Octave:未来时间戳如果启用了warning,Octave将在未来找到一个带有时间戳的函数文件,则会打印一个警告。默认情况下Octave:未来时间戳警告已启用。

八度曲线:图示符渲染

如果八度曲线:图示符渲染如果启用了警告,如果字符的字形无法用当前字体呈现,Octave将打印警告。默认情况下八度曲线:图示符渲染警告已启用。

octave:从意象到现实

如果octave:从意象到现实如果启用警告,则会打印一个警告,用于将复数隐式转换为实数。默认情况下octave:从意象到现实警告被禁用。

Octave:无限循环

如果Octave:无限循环如果启用了警告,则在检测到无限循环时会打印警告,例如对于i=1:Inf而(1)。默认情况下Octave:无限循环警告已启用。

octave:language-extension

使用八维语言特有的函数时打印警告,这些函数可能仍在中缺失MATLAB。默认情况下octave:language-extension警告被禁用。这个传统的--脑死的Octave的启动参数也可能有用,详见命令行参数.

Octave:遗留函数

如果Octave:遗留函数如果启用了警告,则当Octave遇到以下函数时会报警告MATLAB应该避免麻烦。该函数可能在未来某个时候过时并被删除,在这种情况下,警告将更改为Octave:不推荐使用的函数,并且在被删除之前,该函数将继续存在于Octave的另外两个版本中。默认情况下Octave:遗留函数警告已启用。

Octave:逻辑转换

如果Octave:逻辑转换如果启用了警告,则如果数组从数值到布尔值发生隐式转换,并且数组中的任何元素都不等于零或一,则会打印警告。默认情况下Octave:逻辑转换警告已启用。

Octave:lu:稀疏输入

如果Octave:lu:稀疏输入如果启用警告,Octave将在使用稀疏输入和少于四个输出参数调用lu函数时报警告。在这种情况下,不执行保持稀疏性的列排列,并且结果可能不准确。默认情况下Octave:lu:稀疏输入警告已启用。

八度曲线:缺少图示符

如果八度曲线:图示符渲染如果启用了警告,如果当前字体没有为aused字符提供字形,Octave将打印警告。默认情况下八度曲线:缺少图示符警告已启用。

Octave:缺少分号

如果Octave:缺少分号如果启用了warning,Octave将在函数定义中的语句未结束insemicolon时报警告。默认情况下Octave:缺少分号警告被禁用。

Octave:混合字符串concat

如果Octave:混合字符串concat如果启用了警告,则在连接双引号和单引号字符串的混合物时打印警告。默认情况下Octave:混合字符串concat警告被禁用。

Octave:近似奇异矩阵
Octave:奇异矩阵

如果(几乎)奇异矩阵反转,则会发出这些警告。默认情况下Octave:近似奇异矩阵Octave:奇异矩阵启用警告。

Octave:负调为零

如果Octave:负调为零如果启用了警告,则为以下表达式打印警告

eye(-1)

默认情况下Octave:负调为零警告被禁用。

Octave:作为索引的非整数范围

如果Octave:作为索引的非整数范围如果启用警告,则如果使用包含非整数值的范围对数组进行索引,则会打印警告。例如

a=[1 2 3 4 5];b=2.2:4.2⇒ 1.2 2.2 3.2a(b)⇒ 2 3 4

如果Octave:作为索引的非整数范围警告已启用。默认情况下Octave:作为索引的非整数范围警告已启用。

Octave:num到str

如果Octave:num到str如果启用了警告,则当字符串是使用字符串和矩阵表示法中的数字混合构建时,会打印一个警告,用于将数字隐式转换为UTF-8编码的等效字符。例如

[“f”,111,111]⇒ “foo

如果Octave:num到str警告已启用。默认情况下Octave:num到str警告已启用。

Octave:可能的matlab短路算子

如果Octave:可能的matlab短路算子警告已启用,Octave将警告不要使用非短路操作器&|在…内如果while条件它们通常从不短路,但在一定条件下使用时会短路。默认情况下Octave:可能的matlab短路算子启用警告。

Octave:pow2:忽略虚值

如果Octave:pow2:忽略虚值如果启用了警告,则如果输入到pow2是复杂的。默认情况下Octave:pow2:忽略虚值警告已启用。

Octave:递归路径搜索

如果Octave:递归路径搜索如果启用了警告,Octave将报警告addpath与双斜杠一起使用。默认情况下Octave:递归路径搜索警告已启用。

Octave:删除init目录

这个路径函数更改Octave用于查找函数的搜索路径。可以将路径设置为不包括Octave自己的内置函数的值。如果Octave:删除init目录如果启用了警告,则Octave将报警告路径函数的使用方式可能使renderOctave无法工作。默认情况下Octave:删除init目录警告已启用。

Octave:重新加载力清除

如果从同一文件加载了多个函数,Octave必须清除所有函数,然后才能重新加载其中的任何一个。如果Octave:重新加载力清除如果启用了警告,Octave将在发生这种情况时向您报警告,并打印一份强制清除的其他函数的列表。默认情况下Octave:重新加载力清除警告已启用。

Octave:分隔符插入

如果逗号或分号可能自动插入文字矩阵中,则打印警告。默认情况下Octave:分隔符插入警告被禁用。

Octave:阴影函数

如果Octave:阴影函数如果已启用警告,Octave将在包含影子核心函数的函数的搜索路径中添加路径时报警告。默认情况下Octave:阴影函数警告已启用。

Octave:单引号字符串

如果使用单引号字符引入跨步常量,则打印警告。默认情况下Octave:单引号字符串警告被禁用。

Octave:稀疏:双重转换

如果Octave:稀疏:双重转换如果启用警告,则在创建稀疏数组时,当从完整的单个数组发生隐式转换时,将打印警告。默认情况下Octave:稀疏:双重转换警告已启用。

Octave:平方米:SingularMatrix

如果Octave:平方米:SingularMatrix如果启用了警告,则如果矩阵平方根函数矩阵平方根用一个奇异的输入矩阵来调用。默认情况下Octave:平方米:SingularMatrix警告已启用。

Octave:str到num

如果Octave:str到num如果启用警告,则会打印一个警告,用于将字符串隐式转换为UTF-8编码的数字字节序列。例如

abc”+0⇒ 97 98 99

如果Octave:str到num警告已启用。默认情况下Octave:str到num警告被禁用。

Octave:LaTeX:内部错误

如果Octave:LaTeX:内部错误如果启用警告,则每当绘图中文本的LaTeX渲染器遇到故障时都会打印警告。默认情况下Octave:LaTeX:内部错误警告已启用。

Octave:未实现的matlab函数

如果Octave:未实现的matlab函数警告已启用,当MATLAB使用的代码构造被Octave解释器解析为有效,但Octave尚未实现其函数。默认情况下Octave:未实现的matlab函数警告已启用。

Octave:可变开关标签

如果Octave:可变开关标签如果启用警告,Octave将在开关标签不是常量或常量表达式的情况下打印警告。默认情况下Octave:可变开关标签警告被禁用。


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号