Python and Python matrix interface
Errors in the Gurobi Python interface are handled through the Python exception mechanism. In the example, all Gurobi statements are enclosed inside a try
block, and any associated errors would be caught by the except
block:
except gp.GurobiError as e: print('Error code ' + str(e.errno) + ': ' + str(e)) except AttributeError: print('Encountered an attribute error')
C interface
We would like to point out one additional aspect of the example. Almost all of the Gurobi methods return an error code. The code will typically be zero, indicating that no error was encountered, but it is important to check the value of the code in case an error arises.
While you may want to print a specialized error code at each point where an error may occur, the Gurobi interface provides a more flexible facility for reporting errors. The GRBgeterrormsg() routine returns a textual description of the most recent error associated with an environment:
/* Error reporting */ if (error) { printf("ERROR: %s\n", GRBgeterrormsg(env)); exit(1); }
Once the error reporting is done, the only remaining task in our example is to release the resources associated with our optimization task. In this case, we populated one model and created one environment. We call GRBfreemodel(model)
to free the model, and GRBfreeenv(env)
to free the environment (in that order).
C++ interface
Errors in the Gurobi C++ interface are handled through the C++ exception mechanism. In the example, all Gurobi statements are enclosed inside a try
block, and any associated errors would be caught by the catch
block:
} catch(GRBException e) { cout << "Error code = " << e.getErrorCode() << endl; cout << e.getMessage() << endl; } catch(...) { cout << "Exception during optimization" << endl; }
Java interface
Errors in the Gurobi Java interface are handled through the Java exception mechanism. In the example, all Gurobi statements are enclosed inside a try
block, and any associated errors would be caught by the catch
block:
} catch (GRBException e) { System.out.println("Error code: " + e.getErrorCode() + ". " + e.getMessage()); }
.NET interface
Errors in the Gurobi .NET interface are handled through the .NET exception mechanism. In the example, all Gurobi statements are enclosed inside a try
block, and any associated errors would be caught by the catch
block:
} catch (GRBException e) { Console.WriteLine("Error code: " + e.ErrorCode + ". " + e.Message); }
Comments
0 comments
Please sign in to leave a comment.