我使用Patrick Lundin的Math免费解析器在C#中编写了简单的数学函数绘图仪.
现在,我的代码片段是这样的:
for (float value = -xaxis; value < xaxis; value += konst)
{
hash.Add("x", value.ToString());
double result = 0;
result = parser.Parse(func, hash);...
Run Code Online (Sandbox Code Playgroud)
这适用于在实数上定义的函数.但是,当我想要解析仅在R +上定义的函数时,例如ln(x),自然解析器将NaN赋予结果.
现在,我尝试通过异常处理来处理它,如下所示:
for (float value = -xaxis; value < xaxis; value += konst)
{
hash.Add("x", value.ToString());
double result = 0;
try{
result = parser.Parse(func, hash);
}
catch {
count = false; //just a variable I am using to draw lines
continue; // I hoped to skip the "wrong" number parsed until I came to R+ numbers
}...
Run Code Online (Sandbox Code Playgroud)
但这样做并不起作用,而调试时,catch根本就不会执行.
拜托,我做错了什么?谢谢.
And*_*ber 12
你说parser回报NaN.这不是一个例外,这是一个try/catch处理.因此catch块没有异常,因此它永远不会被运行.
相反,你应该测试你的resultNaN,如下:
if(double.IsNaN(result))...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7395 次 |
| 最近记录: |