#include "../ScripterExport.h"
#include "../../strclass.h"
#include "../../WindowsDefines.h"
#include "../foundation/ValueHolderMember.h"
Classes | |
class | MAXScriptException |
class | MAXScriptException::ScopedMXSCallstackCaptureDisable |
helper class for disabling mxs callstack capture if an exception is thrown. More... | |
class | MAXScriptException::ScopedCplusplusCallstackCaptureDisable |
helper class for disabling c++ callstack capture if a system exception is thrown. More... | |
class | MAXScriptRuntimeErrorException |
class | UnknownSystemException |
class | SignalException |
This is the exception that is thrown if the user breaks execution by pressing and holding the escape key. More... | |
class | CompileError |
class | SyntaxError |
class | TypeError |
class | NoMethodError |
class | AccessorError |
class | AssignToConstError |
class | ArgCountError |
class | RuntimeError |
class | UserThrownError |
class | DebuggerRuntimeError |
class | IncompatibleTypes |
class | ConversionError |
class | FunctionReturn |
class | LoopExit |
class | LoopContinue |
Macros | |
#define | unimplemented(m, t) throw NoMethodError (m, t) |
Functions | |
ScripterExport void | ProcessMAXScriptException (MAXScriptException &e, const MCHAR *caption, bool displayErrorMessageBox, bool showSourcePosition, bool isTerminalHandling, bool quietErrors=false) |
This method centralizes the handling of maxscript exceptions in c++ code. More... | |
Variables | |
MCHAR * | null_string |
#define unimplemented | ( | m, | |
t | |||
) | throw NoMethodError (m, t) |
ScripterExport void ProcessMAXScriptException | ( | MAXScriptException & | e, |
const MCHAR * | caption, | ||
bool | displayErrorMessageBox, | ||
bool | showSourcePosition, | ||
bool | isTerminalHandling, | ||
bool | quietErrors = false |
||
) |
This method centralizes the handling of maxscript exceptions in c++ code.
It's typical usage looks like:
ScopedMaxScriptEvaluationContext scopedMaxScriptEvaluationContext; MAXScript_TLS* _tls = scopedMaxScriptEvaluationContext.Get_TLS(); two_value_locals_tls( thingValue, propNameValue ); try { ScopedSaveCurrentFrames scopedSaveCurrentFrames(_tls); vl.thingValue = InterfaceFunction::FPValue_to_val( thing ); vl.propNameValue = Name::intern( propName ); vl.thingValue = vl.thingValue->get_property( &vl.propNameValue, 1 ); vl.thingValue->to_fpvalue( retVal ); } catch (MAXScriptException& e) { ProcessMAXScriptException(e, _T("GetScriptedProperty"), false, false, true); } catch (...) { ProcessMAXScriptException(UnknownSystemException(), _T("GetScriptedProperty"), false, false, true); }
e | The maxscript exception to process |
caption | The string to be used in the title bar of the error message box, and is used as part of the verbose description of the exception. Can be null. |
displayErrorMessageBox | If true, an error message box is displayed (unless max is in quiet mode). |
showSourcePosition | If true, source position of error is shown in maxscript editor. |
isTerminalHandling | If true, terminal handling of the exception is occurring. If false, the catch will be rethrowing the exception. |
quietErrors | If true, error information is not written to Listener, a brief description of the exception and its source location is written to the log file. |
MCHAR* null_string |