//operator char *(void); /// <inheritdoc /> /// <summary> /// The exception is translated into a message as produced by print_message/2. The character data is stored in a ring. /// </summary> /// <returns>A textual description of the Exception</returns> override public string ToString() { if (!PlEngine.IsInitialized) { return("A PlException was thrown but it can't formatted because PlEngine is not Initialized."); } string strRet = "[ERROR: Failed to generate message. Internal error]\n"; using (new PlFrame()) { #if USE_PRINT_MESSAGE PlTermV av = new PlTermV(2); av[0] = PlTerm.PlCompound("print_message", new PlTermV(new PlTerm("error"), new PlTerm(_exTerm.TermRef))); PlQuery q = new PlQuery("$write_on_string", av); if (q.NextSolution()) { strRet = (string)av[1]; } q.Free(); #else var av = new PlTermV(2); av[0] = new PlTerm(_exTerm.TermRef); using (var q = new PlQuery("$messages", "message_to_string", av)) { if (q.NextSolution()) { strRet = av[1].ToString(); } } #endif } return(strRet); }
//operator char *(void); /// <inheritdoc /> /// <summary> /// The exception is translated into a message as produced by print_message/2. The character data is stored in a ring. /// </summary> /// <returns></returns> override public string ToString() { if (_messagePl != null) { return(GetType() + ": " + _messagePl); } if (!PlEngine.IsInitialized) { return("A PlException was thrown but it can't formatted because PlEngine is not Initialized."); } string strRet = "[ERROR: Failed to generate message. Internal error]\n"; if (libpl.NoToString) { return("[ERROR: Failed to generate message. NoToString presently]\n"); } using (PlFrame fr = new PlFrame()) { #if USE_PRINT_MESSAGE PlTermV av = new PlTermV(2); av[0] = PlTerm.PlCompound("print_message", new PlTermV(new PlTerm("error"), new PlTerm(_exTerm.TermRef))); PlQuery q = new PlQuery("$write_on_string", av); if (q.NextSolution()) { strRet = (string)av[1]; } q.Free(); #else PlTermV av = new PlTermV(2); av[0] = new PlTerm(_exTerm.TermRef); PlQuery q = new PlQuery("$messages", "message_to_string", av); if (q.NextSolution()) { strRet = av[1].ToString(); } //q.Free(); return(strRet); q.Dispose(); #endif } return(strRet); }
//operator char *(void); /// <inheritdoc /> /// <summary> /// The exception is translated into a message as produced by print_message/2. The character data is stored in a ring. /// </summary> /// <returns></returns> override public string ToString() { if (_messagePl != null) return GetType() + ": " + _messagePl; if (!PlEngine.IsInitialized) return "A PlException was thrown but it can't formatted because PlEngine is not Initialized."; string strRet = "[ERROR: Failed to generate message. Internal error]\n"; if (libpl.NoToString) return "[ERROR: Failed to generate message. NoToString presently]\n"; using (PlFrame fr = new PlFrame()) { #if USE_PRINT_MESSAGE PlTermV av = new PlTermV(2); av[0] = PlTerm.PlCompound("print_message", new PlTermV(new PlTerm("error"), new PlTerm( _exTerm.TermRef))); PlQuery q = new PlQuery("$write_on_string", av); if ( q.NextSolution() ) strRet = (string)av[1]; q.Free(); #else PlTermV av = new PlTermV(2); av[0] = new PlTerm(_exTerm.TermRef); PlQuery q = new PlQuery("$messages", "message_to_string", av); if (q.NextSolution()) strRet = av[1].ToString(); //q.Free(); return strRet; q.Dispose(); #endif } return strRet; }