26#if ! defined (octave_error_h)
27#define octave_error_h 1
29#include "octave-config.h"
262 static OCTINTERP_API std::list<frame_info>
272 verror (
bool save_last_error, std::ostream& os,
const char *
name,
273 const char *
id,
const char *fmt, va_list args,
274 bool with_cfn =
false);
277 vwarning (
const char *
name,
const char *
id,
const char *fmt,
286 OCTINTERP_API
void error_1 (
const char *
id,
const char *fmt, va_list args);
289 OCTINTERP_API
void vusage (
const char *
id,
const char *fmt, va_list args);
291 OCTINTERP_API
void vwarning (
const char *
id,
const char *fmt, va_list args);
295 rethrow_error (
const std::string&
id,
const std::string& msg,
299 OCTINTERP_API
void vpanic (
const char *fmt, va_list args);
302 OCTINTERP_API
void panic (
const char *fmt, ...);
325 const std::string&
id,
327 const std::list<frame_info>& stack_info
328 = std::list<frame_info> ());
337 OCTAVE_DEPRECATED (7,
"second argument is no longer accepted")
411#define panic_impossible() \
412 panic ("impossible state reached in file '%s' at line %d", __FILE__, __LINE__)
414extern OCTINTERP_API
void
415vmessage (
const char *
name,
const char *fmt, va_list args);
417OCTAVE_FORMAT_PRINTF (2, 3)
418extern OCTINTERP_API
void message (const
char *
name, const
char *fmt, ...);
420extern OCTINTERP_API
void vwarning (const
char *fmt, va_list args);
422OCTAVE_FORMAT_PRINTF (1, 2)
423extern OCTINTERP_API
void warning (const
char *fmt, ...);
426extern OCTINTERP_API
void verror (const
char *fmt, va_list args);
428OCTAVE_FORMAT_PRINTF (1, 2)
430extern OCTINTERP_API
void error (const
char *fmt, ...);
433extern OCTINTERP_API
void
436OCTAVE_FORMAT_PRINTF (2, 3)
438extern OCTINTERP_API
void
442extern OCTINTERP_API
void
445OCTAVE_FORMAT_PRINTF (1, 2)
447extern OCTINTERP_API
void
451extern OCTINTERP_API
void
454OCTAVE_FORMAT_PRINTF (1, 2)
456extern OCTINTERP_API
void
460extern OCTINTERP_API
void
463OCTAVE_FORMAT_PRINTF (2, 3)
465extern OCTINTERP_API
void
468extern OCTINTERP_API
void
471OCTAVE_FORMAT_PRINTF (2, 3)
472extern OCTINTERP_API
void
476extern OCTINTERP_API
void
479OCTAVE_FORMAT_PRINTF (2, 3)
481extern OCTINTERP_API
void
485extern OCTINTERP_API
void
488OCTAVE_FORMAT_PRINTF (2, 3)
490extern OCTINTERP_API
void
494extern OCTINTERP_API
void
497OCTAVE_FORMAT_PRINTF (2, 3)
499extern OCTINTERP_API
void
503extern OCTINTERP_API
void vpanic (const
char *fmt, va_list args);
505OCTAVE_FORMAT_PRINTF (1, 2)
507extern OCTINTERP_API
void panic (const
char *fmt, ...);
509OCTAVE_NAMESPACE_BEGIN
531#if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS)
532OCTAVE_DEPRECATED (7,
"use 'octave::defun_usage_message' instead")
538OCTAVE_DEPRECATED (7,
"use 'octave::set_warning_state' instead")
545OCTAVE_DEPRECATED (7,
"use 'octave::set_warning_state' instead")
551OCTAVE_DEPRECATED (7,
"use 'octave::warning_enabled' instead")
557OCTAVE_DEPRECATED (7,
"use 'octave::disable_warning' instead")
563OCTAVE_DEPRECATED (7,
"use 'octave::interpreter_try' instead")
569OCTAVE_DEPRECATED (6,
"this function is obsolete and should not be needed")
570inline
void reset_error_handler (
void) { }
576OCTAVE_DEPRECATED (6,
"this variable is obsolete and always has the value 0")
bool m_backtrace_on_warning
TRUE means that Octave will try to display a stack trace when a warning is encountered.
bool quiet_warning(void) const
OCTINTERP_API error_system(interpreter &interp)
octave_map m_warning_options
A structure containing (most of) the current state of warnings.
OCTINTERP_API void initialize_default_warning_state(void)
bool debug_on_error(bool flag)
bool m_discard_warning_messages
TRUE means warning messages are turned off.
void set_beep_on_error(bool flag)
std::string m_last_error_id
The last error message id.
bool backtrace_on_warning(void) const
OCTINTERP_API void interpreter_try(unwind_protect &frame)
OCTINTERP_API void display_warning_options(std::ostream &os)
std::string last_error_message(void) const
void set_last_warning_id(const std::string &val)
OCTINTERP_API void verror(bool save_last_error, std::ostream &os, const char *name, const char *id, const char *fmt, va_list args, bool with_cfn=false)
void set_discard_warning_messages(bool flag)
static OCTINTERP_API std::list< frame_info > make_stack_frame_list(const octave_map &stack)
void set_quiet_warning(bool flag)
void set_last_warning_message(const std::string &val)
OCTAVE_NORETURN OCTINTERP_API void error_1(execution_exception &ee, const char *id, const char *fmt, va_list args)
OCTAVE_NORETURN OCTINTERP_API void vpanic(const char *fmt, va_list args)
std::string last_warning_id(const std::string &s)
std::string m_last_error_message
The text of the last error message.
OCTINTERP_API void set_warning_option(const std::string &state, const std::string &id)
std::string last_warning_message(const std::string &s)
bool debug_on_caught(void) const
OCTAVE_NORETURN OCTINTERP_API void rethrow_error(const std::string &id, const std::string &msg, const octave_map &stack)
OCTINTERP_API octave_scalar_map warning_query(const std::string &id_arg)
octave_map warning_options(void) const
std::string last_error_id(const std::string &s)
std::string last_error_id(void) const
OCTAVE_NORETURN OCTINTERP_API void throw_error(const std::string &err_type, const std::string &id, const std::string &message, const std::list< frame_info > &stack_info=std::list< frame_info >())
std::string last_warning_id(void) const
OCTINTERP_API int warning_enabled(const std::string &id)
For given warning ID, return 0 if warnings are disabled, 1 if enabled, and 2 if the given ID should b...
octave_map warning_options(const octave_map &new_val)
std::string m_last_warning_id
The last warning message id.
bool verbose_warning(bool flag)
octave_map last_error_stack(const octave_map &new_val)
static OCTINTERP_API octave_map make_stack_map(const std::list< frame_info > &frames)
bool beep_on_error(void) const
bool discard_warning_messages(void) const
OCTAVE_NORETURN OCTINTERP_API void vusage(const char *id, const char *fmt, va_list args)
bool backtrace_on_warning(bool flag)
bool debug_on_caught(bool flag)
error_system & operator=(const error_system &)=delete
bool m_debug_on_caught
TRUE means that Octave will try to enter the debugger when an error is encountered within the 'try' s...
bool m_debug_on_warning
TRUE means that Octave will try to enter the debugger when a warning is encountered.
OCTINTERP_API void display_exception(const execution_exception &ee, std::ostream &os) const
void set_last_error_stack(const octave_map &val)
OCTINTERP_API void disable_warning(const std::string &id)
~error_system(void)=default
OCTINTERP_API void vwarning(const char *name, const char *id, const char *fmt, va_list args)
bool debug_on_warning(void) const
void set_debug_on_warning(bool flag)
octave_map m_last_error_stack
The last file in which an error occurred.
bool debug_on_error(void) const
error_system(const error_system &)=delete
void set_verbose_warning(bool flag)
OCTINTERP_API void save_exception(const execution_exception &ee)
void set_last_error_id(const std::string &val)
bool discard_warning_messages(bool flag)
bool m_beep_on_error
TRUE means that Octave will try to beep obnoxiously before printing error messages.
void set_backtrace_on_warning(bool flag)
bool quiet_warning(bool flag)
bool beep_on_error(bool flag)
std::string last_warning_message(void) const
bool m_debug_on_error
TRUE means that Octave will try to enter the debugger when an error is encountered.
void set_debug_on_caught(bool flag)
interpreter & m_interpreter
bool m_quiet_warning
TRUE means that Octave will print no warnings, but lastwarn will be updated.
bool m_verbose_warning
TRUE means that Octave will print a verbose warning.
bool debug_on_warning(bool flag)
std::string last_error_message(const std::string &s)
octave_map last_error_stack(void) const
OCTINTERP_API std::string default_warning_state(void)
void set_warning_options(const octave_map &val)
OCTAVE_NORETURN OCTINTERP_API void panic(const char *fmt,...)
std::string m_last_warning_message
The text of the last warning message.
bool verbose_warning(void) const
void set_last_error_message(const std::string &val)
void set_debug_on_error(bool flag)
+namespace/ +namespace/private/ +namespace/
OCTAVE_NORETURN OCTINTERP_API void vparse_error_with_id(const char *id, const char *fmt, va_list args)
OCTINTERP_API void warning(const char *fmt,...)
OCTAVE_NORETURN OCTINTERP_API void usage_with_id(const char *id, const char *fmt,...)
OCTAVE_NORETURN OCTINTERP_API void parse_error_with_id(const char *id, const char *fmt,...)
OCTINTERP_API void vmessage(const char *name, const char *fmt, va_list args)
OCTINTERP_API octave_value_list set_warning_state(const std::string &id, const std::string &state)
OCTINTERP_API void disable_warning(const std::string &id)
OCTINTERP_API void message(const char *name, const char *fmt,...)
OCTAVE_NORETURN OCTINTERP_API void error_with_cfn(const char *fmt,...)
OCTAVE_NORETURN OCTINTERP_API void parse_error(const char *fmt,...)
OCTAVE_NORETURN OCTINTERP_API void error_with_id(const char *id, const char *fmt,...)
OCTAVE_NORETURN OCTINTERP_API void vparse_error(const char *fmt, va_list args)
OCTAVE_NAMESPACE_END OCTINTERP_API int error_state
OCTINTERP_API int warning_enabled(const std::string &id)
OCTAVE_NORETURN OCTINTERP_API void verror_with_id_cfn(const char *id, const char *fmt, va_list args)
OCTAVE_NORETURN OCTINTERP_API void verror_with_cfn(const char *fmt, va_list args)
OCTINTERP_API void interpreter_try(octave::unwind_protect &)
OCTAVE_NORETURN OCTINTERP_API void vusage_with_id(const char *id, const char *fmt, va_list args)
OCTINTERP_API void warning_with_id(const char *id, const char *fmt,...)
OCTAVE_NORETURN OCTINTERP_API void error(const char *fmt,...)
OCTAVE_NORETURN OCTINTERP_API void error_with_id_cfn(const char *id, const char *fmt,...)
OCTINTERP_API void vwarning_with_id(const char *id, const char *fmt, va_list args)
OCTAVE_NAMESPACE_BEGIN OCTINTERP_API void defun_usage_message(const std::string &msg)
Helper function for print_usage defined in defun.cc.
OCTAVE_NORETURN OCTINTERP_API void verror_with_id(const char *id, const char *fmt, va_list args)
static uint32_t state[624]