error handling

This commit is contained in:
Vitor Santos Costa 2016-09-23 01:21:42 -05:00
parent 2bbc3b9265
commit f9655cccb6
3 changed files with 9 additions and 10 deletions

View File

@ -136,7 +136,7 @@ protected:
YAPPredicate(const char *s0, Term &out, Term &names) { YAPPredicate(const char *s0, Term &out, Term &names) {
CACHE_REGS CACHE_REGS
BACKUP_MACHINE_REGS(); BACKUP_MACHINE_REGS();
Term *outp; Term *modp = NULL;;
out = Yap_StringToTerm(s0, strlen(s0) + 1, &LOCAL_encoding, 1200, &names); out = Yap_StringToTerm(s0, strlen(s0) + 1, &LOCAL_encoding, 1200, &names);
// extern char *s0; // extern char *s0;
@ -145,7 +145,7 @@ protected:
// delete [] ns; // delete [] ns;
if (out == 0L) if (out == 0L)
throw YAPError(); throw YAPError();
ap = getPred(out, outp); ap = getPred(out, modp);
RECOVER_MACHINE_REGS(); RECOVER_MACHINE_REGS();
} }

View File

@ -24,11 +24,11 @@ class T(tuple):
def query_prolog(engine, s): def query_prolog(engine, s):
def answer( q ): def answer( q ):
# try: try:
return q.next() return q.next()
# except yap.YAPPythonException e: except Exception as e:
# print e.text() print( e.args[1] )
# return False return False
q = engine.query(s) q = engine.query(s)
ask = True ask = True

View File

@ -96,7 +96,7 @@ return *new YAPTerm();
switch (e.getErrorClass()) { switch (e.getErrorClass()) {
case YAPC_NO_ERROR: case YAPC_NO_ERROR:
break; break;
/// bad domain, "first argument often is the predicate. /// bad domain, "first argument often is the predicate.
case DOMAIN_ERROR: { case DOMAIN_ERROR: {
switch (en) { switch (en) {
case DOMAIN_ERROR_OUT_OF_RANGE: case DOMAIN_ERROR_OUT_OF_RANGE:
@ -193,8 +193,7 @@ return *new YAPTerm();
break; break;
} }
PyErr_SetString(pyerr, e.text()); PyErr_SetString(pyerr, e.text());
return Py_False; }
}
} }
#else #else