Gurobi API Exceptions (GRBException) with IronPython
本文关键字:with IronPython GRBException API Exceptions Gurobi | 更新日期: 2023-09-27 18:07:29
我有一个问题运行一个Gurobi优化模型使用c#/。. NET库。
我有一个方法来访问变量,虽然他们的名字(即GRBModel.GetVarByName),类似于
public GRBVar variable(i,t)
{
try
{
GRBModel M = getModel();
string varname = varname(i,t);
GRBVar var = M.GetVarByName(varname);
return var;
}
catch (GRBException ex)
{
System.Console.WriteLine(ex.ToString());
throw new GRBException(ex.ToString());
}
}
问题是,在我的IronPython脚本,当我试图访问一个不存在的变量,什么都没有发生…该消息不会出现在控制台上。我做错了什么??
我想你错过了一个返回语句的地方;如果捕捉到异常,则该方法不会返回。(c#编译器在这种情况下不会出错吗?)
如果这个方法只适用于IronPython,你可以让异常传递给IronPython并在那里处理它。
根据Gurobi . net参考手册中的这一页,GRBException
继承自。net Exception类。要从基于Exception
的类中获取错误消息,您应该使用message属性而不是ToString()
方法,后者默认情况下通常只显示引用类的类名。
catch
子句更改为:
catch (GRBException ex)
{
System.Console.WriteLine(ex.Message);
}
或者,您可以输出特定于GRBException
类的ErrorCode属性。