Files
cvc5/examples/api/java/Exceptions.java
mudathirmahgoub 690a392656 Enable CI for Junit tests (#7436)
This PR enables CI for java tests by adding --java-bindings to ci.yml.
It also replaces the unreliable finalize method and instead uses AutoCloseable and explicit close method to clean up dynamic memory allocated by java native interface.
The PR fixes compile errors for SolverTest.java and runtime errors for Solver.defineFun.
2021-11-03 21:32:10 +00:00

67 lines
1.7 KiB
Java

/******************************************************************************
* Top contributors (to current version):
* Andres Noetzli
*
* This file is part of the cvc5 project.
*
* Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
* in the top-level source directory and their institutional affiliations.
* All rights reserved. See the file COPYING in the top-level source
* directory for licensing information.
* ****************************************************************************
*
* Catching CVC4 exceptions via the Java API.
*
* A simple demonstration of catching CVC4 execptions via the Java API.
*/
import io.github.cvc5.api.*;
public class Exceptions
{
public static void main(String[] args)
{
try (Solver solver = new Solver())
{
solver.setOption("produce-models", "true");
// Setting an invalid option
try
{
solver.setOption("non-existing", "true");
System.exit(1);
}
catch (Exception e)
{
System.out.println(e.toString());
}
// Creating a term with an invalid type
try
{
Sort integer = solver.getIntegerSort();
Term x = solver.mkVar(integer, "x");
Term invalidTerm = solver.mkTerm(Kind.AND, x, x);
solver.checkSatAssuming(invalidTerm);
System.exit(1);
}
catch (Exception e)
{
System.out.println(e.toString());
}
// Asking for a model after unsat result
try
{
solver.checkSatAssuming(solver.mkBoolean(false));
solver.getModel(new Sort[] {}, new Term[] {});
System.exit(1);
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
}
}