#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 | 
| class | MaxShutdownException | 
| class | CallStackOverflowException | 
| Exception thrown when calling a scripted function with less than 256k program call stack remaining.  More... | |
| 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 |